# ----------------------------------------------------------------------------- # Unicode::Japanese # Unicode::Japanese::PurePerl # ----------------------------------------------------------------------------- # $Id: Japanese_stub.pm,v 1.60 2005/09/28 13:17:06 hio Exp $ # ----------------------------------------------------------------------------- package Unicode::Japanese::PurePerl; # methods of Unicode::Japanese::PurePerl are # below ones of Unicode::Japanese. # ----------------------------------------------------------------------------- # Unicode::Japanese # ----------------------------------------------------------------------------- package Unicode::Japanese; use strict; use vars qw($VERSION $PurePerl $xs_loaderror); $VERSION = '0.31'; # `use bytes' and `use Encode' if on perl-5.8.0 or later. if( $] >= 5.008 ) { my $evalerr; { local($SIG{__DIE__}) = 'DEFAULT'; local($@); eval 'use bytes;use Encode;'; $evalerr = $@; } $evalerr and CORE::die($evalerr); } # ----------------------------------------------------------------------------- # import # sub import { my $pkg = shift; my @na; foreach(@_) { $_ eq 'PurePerl' and $PurePerl=1, next; if( $_ eq 'no_I18N_Japanese' ) { $^H &= ~0x0f00_0000; package Unicode::Japanese::PurePerl; $^H &= ~0x0f00_0000; package Unicode::Japanese; next; } push(@na,$_); } if( @na ) { #use Carp; #croak("invalid parameter (".join(',',@na).")"); } } # ----------------------------------------------------------------------------- # DESTROY # sub DESTROY { } # ----------------------------------------------------------------------------- # load_xs. # loading xs-subs. # this method is called from new (through new=>_init_table=>load_xs) # sub load_xs { #print STDERR "load_xs\n"; if( $PurePerl ) { #print STDERR "PurePerl mode\n"; $xs_loaderror = 'disabled'; return; } #print STDERR "XS mode\n"; my $use_xs; LoadXS: { #print STDERR "* * bootstrap...\n"; eval q { use strict; require DynaLoader; use vars qw(@ISA); @ISA = qw(DynaLoader); local($SIG{__DIE__}) = 'DEFAULT'; Unicode::Japanese->bootstrap($VERSION); }; #print STDERR "* * try done.\n"; #undef @ISA; if( $@ ) { #print STDERR "failed.\n"; #print STDERR "$@\n"; $use_xs = 0; $xs_loaderror = $@; undef $@; last LoadXS; } #print STDERR "succeeded.\n"; $use_xs = 1; eval q { #print STDERR "over riding _s2u,_u2s\n"; do_memmap(); #print STDERR "memmap done\n"; END{ do_memunmap(); } #print STDERR "binding xsubs done.\n"; }; if( $@ ) { #print STDERR "error on last part of load XS.\n"; $xs_loaderror = $@; CORE::die($@); } #print STDERR "done.\n"; } if( $@ ) { $xs_loaderror = $@; CORE::die("Cannot Load Unicode::Japanese either XS nor PurePerl\n$@"); } if( !$use_xs ) { #print STDERR "no xs.\n"; eval q { sub do_memmap($){} sub do_memunmap($){} }; } $xs_loaderror = '' if( !defined($xs_loaderror) ); #print STDERR "load_xs done.\n"; } # ----------------------------------------------------------------------------- # Unicode::Japanese->new(); # cache for char convert. # ----------------------------------------------------------------------------- # $unijp = Unicode::Japanese->new([$str,[$icode]]); # sub new { my $pkg = shift; my $this = {}; if( defined($pkg) ) { bless $this, $pkg; $this->_init_table; }else { bless $this; $this->_init_table; } @_ and $this->set(@_); $this; } # ----------------------------------------------------------------------------- # _got_undefined_subroutine # die with message 'undefiend subroutine'. # sub _got_undefined_subroutine { my $subname = pop; CORE::die "Undefined subroutine \&$subname called.\n"; } # ----------------------------------------------------------------------------- # AUTOLOAD # AUTOLOAD of Unicode::Japanese. # imports PurePerl methods. # AUTOLOAD { # load pure perl subs. use vars qw($AUTOLOAD); my ($pkg,$subname) = $AUTOLOAD =~ /^(.*)::(\w+)$/ or got_undefined_subroutine($AUTOLOAD); no strict 'refs'; if(!defined($Unicode::Japanese::xs_loaderror) ) { Unicode::Japanese::PurePerl::_init_table(); if( defined(&$AUTOLOAD) ) { return &$AUTOLOAD; } } my $ppsubname = "$pkg\:\:PurePerl\:\:$subname"; my $sub = \&$ppsubname; *$AUTOLOAD = $sub; # copy. goto &$sub; } # ----------------------------------------------------------------------------- # Unicode::Japanese::PurePerl # ----------------------------------------------------------------------------- package Unicode::Japanese::PurePerl; use vars qw(%CHARCODE %ESC %RE); use vars qw(@J2S @S2J @S2E @E2S @U2T %T2U %S2U %U2S %SA2U1 %U2SA1 %SA2U2 %U2SA2); %CHARCODE = ( UNDEF_EUC => "\xa2\xae", UNDEF_SJIS => "\x81\xac", UNDEF_JIS => "\xa2\xf7", UNDEF_UNICODE => "\x20\x20", ); %ESC = ( JIS_0208 => "\e\$B", JIS_0212 => "\e\$(D", ASC => "\e\(B", KANA => "\e\(I", E_JSKY_START => "\e\$", E_JSKY_END => "\x0f", ); %RE = ( ASCII => '[\x00-\x7f]', EUC_0212 => '\x8f[\xa1-\xfe][\xa1-\xfe]', EUC_C => '[\xa1-\xfe][\xa1-\xfe]', EUC_KANA => '\x8e[\xa1-\xdf]', JIS_0208 => '\e\$\@|\e\$B|\e&\@\e\$B', JIS_0212 => "\e" . '\$\(D', JIS_ASC => "\e" . '\([BJ]', JIS_KANA => "\e" . '\(I', SJIS_DBCS => '[\x81-\x9f\xe0-\xef\xfa-\xfc][\x40-\x7e\x80-\xfc]', SJIS_KANA => '[\xa1-\xdf]', UTF8 => '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}', BOM2_BE => '\xfe\xff', BOM2_LE => '\xff\xfe', BOM4_BE => '\x00\x00\xfe\xff', BOM4_LE => '\xff\xfe\x00\x00', UTF32_BE => '\x00[\x00-\x10][\x00-\xff]{2}', UTF32_LE => '[\x00-\xff]{2}[\x00-\x10]\x00', E_IMODEv1 => '\xf8[\x9f-\xfc]|\xf9[\x40-\x49\x50-\x52\x55-\x57\x5b-\x5e\x72-\x7e\x80-\xb0]', E_IMODEv2 => '\xf9[\xb1-\xfc]', E_IMODE => '\xf8[\x9f-\xfc]|\xf9[\x40-\x49\x50-\x52\x55-\x57\x5b-\x5e\x72-\x7e\x80-\xfc]', E_JSKY1 => '[EFGOPQ]', E_JSKY1v1 => '[EFG]', E_JSKY1v2 => '[OPQ]', E_JSKY2 => '[\!-z]', E_DOTI => '\xf0[\x40-\x7e\x80-\xfc]|\xf1[\x40-\x7e\x80-\xd6]|\xf2[\x40-\x7e\x80-\xab\xb0-\xd5\xdf-\xfc]|\xf3[\x40-\x7e\x80-\xfa]|\xf4[\x40-\x4f\x80\x84-\x8a\x8c-\x8e\x90\x94-\x96\x98-\x9c\xa0-\xa4\xa8-\xaf\xb4\xb5\xbc-\xbe\xc4\xc5\xc8\xcc]', E_JIS_AU => '[\x75-\x7b][\x21-\x7e]', E_ICON_AU_START => '', E_JSKY_START => quotemeta($ESC{E_JSKY_START}), E_JSKY_END => quotemeta($ESC{E_JSKY_END}), ); $RE{E_JSKY} = $RE{E_JSKY_START} . $RE{E_JSKY1} . $RE{E_JSKY2} . '+' . $RE{E_JSKY_END}; $RE{E_JSKYv1} = $RE{E_JSKY_START} . $RE{E_JSKY1v1} . $RE{E_JSKY2} . '+' . $RE{E_JSKY_END}; $RE{E_JSKYv2} = $RE{E_JSKY_START} . $RE{E_JSKY1v2} . $RE{E_JSKY2} . '+' . $RE{E_JSKY_END}; use vars qw($s2u_table $u2s_table); use vars qw($ei2u1 $ei2u2 $ed2u $ej2u1 $ej2u2 $ea2u1 $ea2u2 $ea2u1s $ea2u2s); use vars qw($eu2i1 $eu2i2 $eu2d $eu2j1 $eu2j2 $eu2a1 $eu2a2 $eu2a1s $eu2a2s); use vars qw(%_h2zNum %_z2hNum %_h2zAlpha %_z2hAlpha %_h2zSym %_z2hSym %_h2zKanaK %_z2hKanaK %_h2zKanaD %_z2hKanaD %_hira2kata %_kata2hira); use vars qw($FH $TABLE $HEADLEN $PROGLEN); # ----------------------------------------------------------------------------- # AUTOLOAD # AUTOLOAD of Unicode::Japanese::PurePerl. # load PurePerl methods from embeded data. # AUTOLOAD { use strict; use vars qw($AUTOLOAD); #print STDERR "AUTOLOAD... $AUTOLOAD\n"; my $save = $@; my @BAK = @_; my $subname = $AUTOLOAD; $subname =~ s/^Unicode\:\:Japanese\:\:(?:PurePerl\:\:)?//; #print "subs..\n",join("\n",keys %$TABLE,''); # check if(!defined($TABLE->{$subname}{offset})) { _init_table(); if( !defined($TABLE->{$subname}{offset}) ) { if( substr($AUTOLOAD,-9) eq '::DESTROY' ) { { no strict; *$AUTOLOAD = sub {}; } $@ = $save; @_ = @BAK; goto &$AUTOLOAD; } CORE::die "Undefined subroutine \&$AUTOLOAD called.\n"; } } if($TABLE->{$subname}{offset} == -1) { CORE::die "Double loaded \&$AUTOLOAD. It has some error.\n"; } seek($FH, $PROGLEN + $HEADLEN + $TABLE->{$subname}{offset}, 0) or die "Can't seek $subname. [$!]\n"; my $sub; read($FH, $sub, $TABLE->{$subname}{length}) or die "Can't read $subname. [$!]\n"; if( $]>=5.008 ) { $sub = 'use bytes;'.$sub; } CORE::eval(($sub=~/(.*)/s)[0]); if ($@) { CORE::die $@; } $DB::sub = $AUTOLOAD; # Now debugger know where we are. # evaled $TABLE->{$subname}{offset} = -1; $@ = $save; @_ = @BAK; goto &$AUTOLOAD; } # ----------------------------------------------------------------------------- # Unicode::Japanese::PurePerl->new() # sub new { goto &Unicode::Japanese::new; } # ----------------------------------------------------------------------------- # DESTROY # sub DESTROY { } # ----------------------------------------------------------------------------- # gensym # sub gensym { package Unicode::Japanese::Symbol; no strict; $genpkg = "Unicode::Japanese::Symbol::"; $genseq = 0; my $name = "GEN" . $genseq++; my $ref = \*{$genpkg . $name}; delete $$genpkg{$name}; $ref; } # ----------------------------------------------------------------------------- # _init_table # sub _init_table { if(!defined($HEADLEN)) { $FH = gensym; my $file = "Unicode/Japanese.pm"; OPEN: { if( $INC{$file} ) { open($FH,$INC{$file}) || CORE::die("could not open file [$INC{$file}] for input : $!"); last OPEN; } foreach my $path (@INC) { my $mypath = $path; $mypath =~ s#/$##; if (-f "$mypath/$file") { open($FH,"$mypath/$file") || CORE::die("could not open file [$INC{$file}] for input : $!"); last OPEN; } } CORE::die "Can't find Japanese.pm in \@INC\n"; } binmode($FH); local($/) = "\n"; my $line; while($line = <$FH>) { last if($line =~ m/^__DATA__/); } $PROGLEN = tell($FH); read($FH, $HEADLEN, 4) or die "Can't read table. [$!]\n"; $HEADLEN = unpack('N', $HEADLEN); read($FH, $TABLE, $HEADLEN) or die "Can't seek table. [$!]\n"; $TABLE =~ /(.*)/s; $TABLE = eval(($TABLE=~/(.*)/s)[0]); if($@) { die "Internal Error. [$@]\n"; } if(!defined($TABLE)) { die "Internal Error.\n"; } $HEADLEN += 4; # load xs. Unicode::Japanese::load_xs(); } } # ----------------------------------------------------------------------------- # _getFile # load embeded file data. # sub _getFile { my $this = shift; my $file = shift; exists($TABLE->{$file}) or die "no such file [$file]\n"; #print STDERR "_getFile($file, $TABLE->{$file}{offset}, $TABLE->{$file}{length})\n"; seek($FH, $PROGLEN + $HEADLEN + $TABLE->{$file}{offset}, 0) or die "Can't seek $file. [$!]\n"; my $data; read($FH, $data, $TABLE->{$file}{length}) or die "Can't read $file. [$!]\n"; $data; } # ----------------------------------------------------------------------------- # use_I18N_Japanese # copy from I18N::Japanese in jperl-5.5.3 # sub use_I18N_Japanese { shift; if( @_ ) { my $bits = 0; foreach( @_ ) { $bits |= 0x1000000 if $_ eq 're'; $bits |= 0x2000000 if $_ eq 'tr'; $bits |= 0x4000000 if $_ eq 'format'; $bits |= 0x8000000 if $_ eq 'string'; } $^H |= $bits; }else { $^H |= 0x0f00_0000; } } # ----------------------------------------------------------------------------- # no_I18N_Japanese # copy from I18N::Japanese in jperl-5.5.3 # sub no_I18N_Japanese { shift; if( @_ ) { my $bits = 0; foreach( @_ ) { $bits |= 0x1000000 if $_ eq 're'; $bits |= 0x2000000 if $_ eq 'tr'; $bits |= 0x4000000 if $_ eq 'format'; $bits |= 0x8000000 if $_ eq 'string'; } $^H &= ~$bits; }else { $^H &= ~0x0f00_0000; } } 1; =head1 NAME Unicode::Japanese - Japanese Character Encoding Handler =head1 SYNOPSIS use Unicode::Japanese; # convert utf8 -> sjis print Unicode::Japanese->new($str)->sjis; # convert sjis -> utf8 print Unicode::Japanese->new($str,'sjis')->get; # convert sjis (imode_EMOJI) -> utf8 print Unicode::Japanese->new($str,'sjis-imode')->get; # convert ZENKAKU (utf8) -> HANKAKU (utf8) print Unicode::Japanese->new($str)->z2h->get; =head1 DESCRIPTION Module for conversion among Japanese character encodings. =head2 FEATURES =over 2 =item * The instance stores internal strings in UTF-8. =item * Supports both XS and Non-XS. Use XS for high performance, or No-XS for ease to use (only by copying Japanese.pm). =item * Supports conversion between ZENKAKU and HANKAKU. =item * Safely handles "EMOJI" of the mobile phones (DoCoMo i-mode, ASTEL dot-i and J-PHONE J-Sky) by mapping them on Unicode Private Use Area. =item * Supports conversion of the same image of EMOJI between different mobile phone's standard mutually. =item * Considers Shift_JIS(SJIS) as MS-CP932. (Shift_JIS on MS-Windows (MS-SJIS/MS-CP932) differ from generic Shift_JIS encodings.) =item * On converting Unicode to SJIS (and EUC-JP/JIS), those encodings that cannot be converted to SJIS (except "EMOJI") are escaped in "&#dddd;" format. "EMOJI" on Unicode Private Use Area is going to be '?'. When converting strings from Unicode to SJIS of mobile phones, any characters not up to their standard is going to be '?' =item * On perl-5.8.0 and later, setting of utf-8 flag is performed properly. utf8() method returns utf-8 `bytes' string and getu() method returns utf-8 `char' string. get() method returns utf-8 `bytes' string in current release. in future, the behavior of get() maybe change. sjis(), jis(), utf8(), etc.. methods return bytes string. The input of new, set, and a getcode method is not asked about utf8/bytes. =back =head1 METHODS =over 4 =item $s = Unicode::Japanese->new($str [, $icode [, $encode]]) Creates a new instance of Unicode::Japanese. If arguments are specified, passes through to set method. =item $s->set($str [, $icode [, $encode]]) =over 2 =item $str: string =item $icode: character encodings, may be omitted (default = 'utf8') =item $encode: ASCII encoding, may be omitted. =back Set a string in the instance. If '$icode' is omitted, string is considered as UTF-8. To specify a encodings, choose from the following; 'jis', 'sjis', 'euc', 'utf8', 'ucs2', 'ucs4', 'utf16', 'utf16-ge', 'utf16-le', 'utf32', 'utf32-ge', 'utf32-le', 'ascii', 'binary', 'sjis-imode', 'sjis-doti', 'sjis-jsky'. '&#dddd' will be converted to "EMOJI", when specified 'sjis-imode' or 'sjis-doti'. For auto encoding detection, you MUST specify 'auto' so as to call getcode() method automatically. For ASCII encoding, only 'base64' may be specified. With it, the string will be decoded before storing. To decode binary, specify 'binary' as the encoding. =item $str = $s->get =over 2 =item $str: string (UTF-8) =back Gets a string with UTF-8. return `bytes' string in current release, this behavior will be changed. utf8() method for `character' string or getu() method for `bytes' string seems better. =item $str = $s->getu =over 2 =item $str: string (UTF-8) =back Gets a string with UTF-8. On perl-5.8.0 and later, return value is with utf-8 flag. =item $code = $s->getcode($str) =over 2 =item $str: string =item $code: character encoding name =back Detects the character encodings of I<$str>. Notice: This method detects B encoding of the string in the instance but I<$str>. Character encodings are distinguished by the following algorithm: (In case of PurePerl) =over 4 =item 1 If BOM of UTF-32 is found, the encoding is utf32. =item 2 If BOM of UTF-16 is found, the encoding is utf16. =item 3 If it is in proper UTF-32BE, the encoding is utf32-be. =item 4 If it is in proper UTF-32LE, the encoding is utf32-le. =item 5 Without NON-ASCII characters, the encoding is ascii. (control codes except escape sequences has been included in ASCII) =item 6 If it includes ISO-2022-JP(JIS) escape sequences, the encoding is jis. =item 7 If it includes "J-PHONE EMOJI", the encoding is sjis-sky. =item 8 If it is in proper EUC-JP, the encoding is euc. =item 9 If it is in proper SJIS, the encoding is sjis. =item 10 If it is in proper SJIS and "EMOJI" of i-mode, the encoding is sjis-imode. =item 11 If it is in proper SJIS and "EMOJI" of dot-i,the encoding is sjis-doti. =item 12 If it is in proper UTF-8, the encoding is utf8. =item 13 If none above is true, the encoding is unknown. =back (In case of XS) =over 4 =item 1 If BOM of UTF-32 is found, the encoding is utf32. =item 2 If BOM of UTF-16 is found, the encoding is utf16. =item 3 String is checked by State Transition if it is applicable for any listed encodings below. ascii / euc-jp / sjis / jis / utf8 / utf32-be / utf32-le / sjis-jsky / sjis-imode / sjis-doti =item 4 The listed order below is applied for a final determination. utf32-be / utf32-le / ascii / jis / euc-jp / sjis / sjis-jsky / sjis-imode / sjis-doti / utf8 =item 5 If none above is true, the encoding is unknown. =back Regarding the algorithm, pay attention to the following: =over 2 =item * UTF-8 is occasionally detected as SJIS. =item * Can NOT detect UCS2 automatically. =item * Can detect UTF-16 only when the string has BOM. =item * Can detect "EMOJI" when it is stored in binary, not in "&#dddd;" format. (If only stored in "&#dddd;" format, getcode() will return incorrect result. In that case, "EMOJI" will be crashed.) =back Because each of XS and PurePerl has a different algorithm, A result of the detection would be possibly different. In case that the string is SJIS with escape characters, it would be considered as SJIS on PurePerl. However, it can't be detected as S-JIS on XS. This is because by using Algorithm, the string can't be distinguished between SJIS and SJIS-Jsky. This exclusion of escape characters on XS from the detection is suppose to be the same for EUC-JP. =item $str = $s->conv($ocode, $encode) =over 2 =item $ocode: output character encoding (Choose from 'jis', 'sjis', 'euc', 'utf8', 'ucs2', 'ucs4', 'utf16', 'binary') =item $encode: encoding, may be omitted. =item $str: string =back Gets a string converted to I<$ocode>. For ASCII encoding, only 'base64' may be specified. With it, the string encoded in base64 will be returned. On perl-5.8.0 and later, return value is not with utf-8 flag, and is bytes string. =item $s->tag2bin Replaces the substrings "&#dddd;" in the string with the binary entity they mean. =item $s->z2h Converts ZENKAKU to HANKAKU. =item $s->h2z Converts HANKAKU to ZENKAKU. =item $s->hira2kata Converts HIRAGANA to KATAKANA. =item $s->kata2hira Converts KATAKANA to HIRAGANA. =item $str = $s->jis $str: string (JIS) Gets the string converted to ISO-2022-JP(JIS). =item $str = $s->euc $str: string (EUC-JP) Gets the string converted to EUC-JP. =item $str = $s->utf8 $str: `bytes' string (UTF-8) Gets the string converted to UTF-8. On perl-5.8.0 and later, return value is not with utf-8 flag, and is bytes string. =item $str = $s->ucs2 $str: string (UCS2) Gets the string converted to UCS2. =item $str = $s->ucs4 $str: string (UCS4) Gets the string converted to UCS4. =item $str = $s->utf16 $str: string (UTF-16) Gets the string converted to UTF-16(big-endian). BOM is not added. =item $str = $s->sjis $str: string (SJIS) Gets the string converted to Shift_JIS(MS-SJIS/MS-CP932). =item $str = $s->sjis_imode $str: string (SJIS/imode_EMOJI) Gets the string converted to SJIS for i-mode. This method is alias of sjis_imode2 on VERSION 0.15. =item $str = $s->sjis_imode1 $str: string (SJIS/imode_EMOJI) Gets the string converted to SJIS for i-mode. $str includes only basic pictgraphs, and is without extended pictgraphs. =item $str = $s->sjis_imode2 $str: string (SJIS/imode_EMOJI) Gets the string converted to SJIS for i-mode. $str includes both basic pictgraphs, and extended ones. =item $str = $s->sjis_doti $str: string (SJIS/dot-i_EMOJI) Gets the string converted to SJIS for dot-i. =item $str = $s->sjis_jsky $str: string (SJIS/J-SKY_EMOJI) Gets the string converted to SJIS for j-sky. This method is alias of sjis_jsky2 on VERSION 0.15. =item $str = $s->sjis_jsky1 $str: string (SJIS/J-SKY_EMOJI) Gets the string converted to SJIS for j-sky. $str includes from Page 1 to Page 3. =item $str = $s->sjis_jsky $str: string (SJIS/J-SKY_EMOJI) Gets the string converted to SJIS for j-sky. $str includes from Page 1 to Page 6. =item @str = $s->strcut($len) =over 2 =item $len: number of characters =item @str: strings =back Splits the string by length(I<$len>). On perl-5.8.0 and later, each element in return array is with utf-8 flag. =item $len = $s->strlen $len: `visual width' of the string Gets the length of the string. This method has been offered to substitute for perl build-in length(). ZENKAKU characters are assumed to have lengths of 2, regardless of the coding being SJIS or UTF-8. =item $s->join_csv(@values); @values: data array Converts the array to a string in CSV format, then stores into the instance. In the meantime, adds a newline("\n") at the end of string. =item @values = $s->split_csv; @values: data array Splits the string, accounting it is in CSV format. Each newline("\n") is removed before split. on perl-5.8.0 and later, utf-8 flag of return value depends on icode of set method. if $s contains binary, return value is bytes too. if $s contains any string, return value is with utf-8 flag. =back =head1 DESCRIPTION OF UNICODE MAPPING =over 2 =item SJIS Mapped as MS-CP932. Mapping table in the following URL is used. ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT If a character cannot be mapped to SJIS from Unicode, it will be converted to &#dddd; format. Also, any unmapped character will be converted into "?" when converting to SJIS for mobile phones. =item EUC-JP/JIS Converted to SJIS and then mapped to Unicode. Any non-SJIS character in the string will not be mapped correctly. =item DoCoMo i-mode Portion of involving "EMOJI" in F800 - F9FF is maapped to U+0FF800 - U+0FF9FF. =item ASTEL dot-i Portion of involving "EMOJI" in F000 - F4FF is mapped to U+0FF000 - U+0FF4FF. =item J-PHONE J-SKY "J-SKY EMOJI" are mapped down as follows: "\e\$"(\x1b\x24) escape sequences, the first byte, the second byte and "\x0f". With sequential "EMOJI"s of identical first bytes, it may be compressed by arranging only the second bytes. 4500 - 47FF is mapped to U+0FFB00 - U+0FFDFF, accounting the first and the second bytes make one EMOJI character. Unicode::Japanese will compress "J-SKY_EMOJI" automatically when the first bytes of a sequence of "EMOJI" are identical. =back =head1 PurePerl mode use Unicode::Japanese qw(PurePerl); If module was loaded with 'PurePerl' keyword, it works on Non-XS mode. =head1 BUGS =over 2 =item * EUC-JP, JIS strings cannot be converted correctly when they include non-SJIS characters because they are converted to SJIS before being converted to UTF-8. =item * Some characters of CP932 not in standard Shift_JIS (ex; not in Joyo Kanji) will not be detected and converted. When string include such non-standard Shift_JIS, they will not detected as SJIS. Also, getcode() and all convert method will not work correctly. =item * When using XS, character encoding detection of EUC-JP and SJIS(included all EMOJI) strings when they include "\e" will fail. Also, getcode() and all convert method will not work. =item * The Japanese.pm file will collapse if sent via ASCII mode of FTP, as it has a trailing binary data. =back =head1 AUTHOR INFORMATION Copyright 2001-2004 SANO Taku (SAWATARI Mikage) and YAMASHINA Hio. All right reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Bug reports and comments to: mikage@cpan.org. Thank you. =head1 CREDITS Thanks very much to: NAKAYAMA Nao SUGIURA Tatsuki & Debian JP Project =cut __DATA__ 攞'joinCsv'=>{'length'=>939,'offset'=>187},'_decodeBase64'=>{'length'=>609,'offset'=>1126},'z2hNum'=>{'length'=>284,'offset'=>1735},'_utf16le_utf16'=>{'length'=>179,'offset'=>3261},'kata2hira'=>{'length'=>1242,'offset'=>2019},'jcode/emoji2/ea2u.dat'=>{'length'=>1320,'offset'=>365251},'_u2ai2'=>{'length'=>1062,'offset'=>4729},'z2hAlpha'=>{'length'=>836,'offset'=>7411},'_ucs4_utf8'=>{'length'=>936,'offset'=>8597},'h2zSym'=>{'length'=>316,'offset'=>9533},'utf8_icon_au1'=>{'length'=>73,'offset'=>9919},'h2z'=>{'length'=>114,'offset'=>9992},'jcode/emoji2/ea2u2s.dat'=>{'length'=>4096,'offset'=>423107},'sjis'=>{'length'=>177,'offset'=>12669},'euc_icon_au2'=>{'length'=>98,'offset'=>12846},'_u2si1'=>{'length'=>1619,'offset'=>12944},'_sj2u1'=>{'length'=>1144,'offset'=>14563},'euc_icon_au'=>{'length'=>97,'offset'=>16035},'tag2bin'=>{'length'=>328,'offset'=>15707},'z2hSym'=>{'length'=>596,'offset'=>16132},'ucs2'=>{'length'=>183,'offset'=>17497},'jis_au2'=>{'length'=>67,'offset'=>17680},'jcode/emoji2/ei2u2.dat'=>{'length'=>2048,'offset'=>237251},'_si2u1'=>{'length'=>1228,'offset'=>17921},'_utf8_utf16'=>{'length'=>950,'offset'=>20488},'jis_icon_au1'=>{'length'=>98,'offset'=>21524},'sjis_icon_au1'=>{'length'=>86,'offset'=>21438},'sjis_jsky2'=>{'length'=>70,'offset'=>21797},'jcode/emoji2/ei2u.dat'=>{'length'=>2048,'offset'=>218819},'getcode'=>{'length'=>1951,'offset'=>21867},'_j2s2'=>{'length'=>382,'offset'=>23818},'jcode/emoji2/ea2us.dat'=>{'length'=>4096,'offset'=>402627},'h2zKanaD'=>{'length'=>810,'offset'=>25060},'sjis_imode1'=>{'length'=>71,'offset'=>37207},'utf8'=>{'length'=>187,'offset'=>37278},'_s2e'=>{'length'=>244,'offset'=>37739},'jcode/emoji2/ea2u2.dat'=>{'length'=>3288,'offset'=>382955},'jcode/emoji2/eu2a2.dat'=>{'length'=>16384,'offset'=>386243},'jcode/s2u.dat'=>{'length'=>48573,'offset'=>170246},'conv'=>{'length'=>3178,'offset'=>42755},'_utf16be_utf16'=>{'length'=>71,'offset'=>46005},'jcode/emoji2/eu2j.dat'=>{'length'=>40960,'offset'=>258755},'hira2kata'=>{'length'=>1242,'offset'=>46548},'splitCsvu'=>{'length'=>177,'offset'=>48485},'_s2j'=>{'length'=>272,'offset'=>51605},'sjis_doti1'=>{'length'=>69,'offset'=>51536},'_ai2u1'=>{'length'=>454,'offset'=>56402},'join_csv'=>{'length'=>29,'offset'=>56373},'jcode/emoji2/eu2as.dat'=>{'length'=>16384,'offset'=>406723},'_s2u'=>{'length'=>988,'offset'=>57038},'jis_icon_au2'=>{'length'=>98,'offset'=>58286},'jis_jsky1'=>{'length'=>82,'offset'=>58204},'sjis_jsky'=>{'length'=>189,'offset'=>58384},'jis'=>{'length'=>179,'offset'=>59744},'jis_au1'=>{'length'=>67,'offset'=>59677},'_utf8_ucs4'=>{'length'=>1149,'offset'=>60664},'get'=>{'length'=>162,'offset'=>61813},'z2h'=>{'length'=>114,'offset'=>61975},'getu'=>{'length'=>266,'offset'=>62089},'_loadConvTable'=>{'length'=>18009,'offset'=>62700},'jcode/emoji2/eu2a2s.dat'=>{'length'=>16384,'offset'=>427203},'_ja2u1'=>{'length'=>1165,'offset'=>82442},'_u2ja1'=>{'length'=>1652,'offset'=>80790},'_j2s'=>{'length'=>177,'offset'=>84565},'utf16'=>{'length'=>187,'offset'=>0},'_u2ai1'=>{'length'=>1203,'offset'=>3440},'sjis_icon_au2'=>{'length'=>86,'offset'=>4643},'_u2si2'=>{'length'=>1620,'offset'=>5791},'splitCsv'=>{'length'=>350,'offset'=>8247},'jcode/emoji2/eu2i.dat'=>{'length'=>16384,'offset'=>220867},'jcode/emoji2/eu2i2.dat'=>{'length'=>16384,'offset'=>239299},'sjis_jsky1'=>{'length'=>70,'offset'=>9849},'_s2j3'=>{'length'=>355,'offset'=>10106},'_u2s'=>{'length'=>2208,'offset'=>10461},'_utf16_utf8'=>{'length'=>769,'offset'=>16728},'h2zNum'=>{'length'=>174,'offset'=>17747},'h2zKanaK'=>{'length'=>979,'offset'=>19149},'strlen'=>{'length'=>360,'offset'=>20128},'strcutu'=>{'length'=>175,'offset'=>21622},'sjis_imode2'=>{'length'=>71,'offset'=>24200},'_validate_utf8'=>{'length'=>789,'offset'=>24271},'z2hKanaK'=>{'length'=>979,'offset'=>25870},'h2zAlpha'=>{'length'=>264,'offset'=>26849},'_utf16_utf16'=>{'length'=>300,'offset'=>27113},'_ucs2_utf8'=>{'length'=>549,'offset'=>27413},'set'=>{'length'=>4697,'offset'=>27962},'jcode/emoji2/eu2a.dat'=>{'length'=>16384,'offset'=>366571},'_sj2u2'=>{'length'=>1503,'offset'=>32659},'getcodelist'=>{'length'=>2157,'offset'=>34162},'jcode/emoji2/ed2u.dat'=>{'length'=>5120,'offset'=>343747},'_utf32_ucs4'=>{'length'=>312,'offset'=>36319},'jis_icon_au'=>{'length'=>97,'offset'=>36631},'_ai2u2'=>{'length'=>406,'offset'=>36728},'utf8_icon_au2'=>{'length'=>73,'offset'=>37134},'z2hKana'=>{'length'=>89,'offset'=>37465},'h2zKana'=>{'length'=>185,'offset'=>37554},'_u2sj1'=>{'length'=>1772,'offset'=>37983},'_si2u2'=>{'length'=>1227,'offset'=>39755},'_u2sj2'=>{'length'=>1773,'offset'=>40982},'utf8_icon_au'=>{'length'=>72,'offset'=>45933},'sjis_doti'=>{'length'=>188,'offset'=>46076},'jis_jsky2'=>{'length'=>82,'offset'=>46264},'_e2s'=>{'length'=>202,'offset'=>46346},'jcode/emoji2/ej2u2.dat'=>{'length'=>3072,'offset'=>299715},'euc'=>{'length'=>175,'offset'=>47790},'_j2s3'=>{'length'=>337,'offset'=>47965},'jcode/emoji2/ej2u.dat'=>{'length'=>3072,'offset'=>255683},'ucs4'=>{'length'=>183,'offset'=>48302},'_sd2u'=>{'length'=>1221,'offset'=>48662},'_u2ja2'=>{'length'=>1653,'offset'=>49883},'_s2e2'=>{'length'=>446,'offset'=>51877},'z2hKanaD'=>{'length'=>498,'offset'=>52323},'_u2sd'=>{'length'=>1615,'offset'=>52821},'jcode/emoji2/eu2j2.dat'=>{'length'=>40960,'offset'=>302787},'jcode/emoji2/eu2d.dat'=>{'length'=>16384,'offset'=>348867},'_utf8_ucs2'=>{'length'=>671,'offset'=>54436},'_ja2u2'=>{'length'=>1168,'offset'=>55107},'jcode/u2s.dat'=>{'length'=>85504,'offset'=>84742},'euc_icon_au1'=>{'length'=>98,'offset'=>56275},'jis_au'=>{'length'=>182,'offset'=>56856},'_utf32le_ucs4'=>{'length'=>178,'offset'=>58026},'sjis_imode'=>{'length'=>192,'offset'=>58573},'_e2s2'=>{'length'=>535,'offset'=>58765},'_s2j2'=>{'length'=>377,'offset'=>59300},'_encodeBase64'=>{'length'=>741,'offset'=>59923},'validate_utf8'=>{'length'=>129,'offset'=>62355},'split_csv'=>{'length'=>131,'offset'=>62484},'sjis_icon_au'=>{'length'=>85,'offset'=>62615},'jis_jsky'=>{'length'=>81,'offset'=>80709},'strcut'=>{'length'=>888,'offset'=>83607},'_utf32be_ucs4'=>{'length'=>70,'offset'=>84495}}# ----------------------------------------------------------------------------- # $bytes_utf16 = $unijp->utf16(); # sub utf16 { my $this = shift; $this->_utf8_utf16($this->{str}); } sub joinCsv { my $this = shift; my $list; if(ref($_[0]) eq 'ARRAY') { $list = shift; if( $]>=5.008 ) { $list = [ @$list ]; foreach(@$list) { defined($_) and Encode::_utf8_off($_); } } } elsif(!ref($_[0])) { $list = [ @_ ]; if( $]>=5.008 ) { foreach(@$list) { defined($_) and Encode::_utf8_off($_); } } } else { my $ref = ref($_[0]); die "String->joinCsv, Param[1] is not ARRAY/ARRRAY-ref. [$ref]\n"; } my $text; if( $^W && grep{!defined($_)}@$list ) { $_[0] && $list eq $_[0] and $list = [@$list]; foreach(@$list) { defined($_) and next; warn "Use of uninitialized value in Unicode::Japanese::joinCsv"; $_ = ""; } } $text = join ',', map {defined($_) ? (s/"/""/g or /[\r\n,]/) ? qq("$_") : $_ : ""} @$list; $this->{str} = $text."\n"; $this->{icode} = 'binary'; $this; } sub _decodeBase64 { local($^W) = 0; # unpack("u",...) gives bogus warning in 5.00[123] my $this = shift; my $str = shift; my $res = ""; $str =~ tr|A-Za-z0-9+=/||cd; # remove non-base64 chars if (length($str) % 4) { warn("Length of base64 data not a multiple of 4"); } $str =~ s/=+$//; # remove padding $str =~ tr|A-Za-z0-9+/| -_|; # convert to uuencoded format while ($str =~ /(.{1,60})/gs) { my $len = chr(32 + length($1)*3/4); # compute length byte $res .= unpack("u", $len . $1 ); # uudecode } $res; } sub z2hNum { my $this = shift; if(!defined(%_z2hNum)) { $this->_loadConvTable; } $this->{str} =~ s/(\xef\xbc\x90|\xef\xbc\x91|\xef\xbc\x92|\xef\xbc\x93|\xef\xbc\x94|\xef\xbc\x95|\xef\xbc\x96|\xef\xbc\x97|\xef\xbc\x98|\xef\xbc\x99)/$_z2hNum{$1}/eg; $this; } sub kata2hira { my $this = shift; if(!defined(%_kata2hira)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x82\xa1|\xe3\x82\xa2|\xe3\x82\xa3|\xe3\x82\xa4|\xe3\x82\xa5|\xe3\x82\xa6|\xe3\x82\xa7|\xe3\x82\xa8|\xe3\x82\xa9|\xe3\x82\xaa|\xe3\x82\xab|\xe3\x82\xac|\xe3\x82\xad|\xe3\x82\xae|\xe3\x82\xaf|\xe3\x82\xb0|\xe3\x82\xb1|\xe3\x82\xb2|\xe3\x82\xb3|\xe3\x82\xb4|\xe3\x82\xb5|\xe3\x82\xb6|\xe3\x82\xb7|\xe3\x82\xb8|\xe3\x82\xb9|\xe3\x82\xba|\xe3\x82\xbb|\xe3\x82\xbc|\xe3\x82\xbd|\xe3\x82\xbe|\xe3\x82\xbf|\xe3\x83\x80|\xe3\x83\x81|\xe3\x83\x82|\xe3\x83\x83|\xe3\x83\x84|\xe3\x83\x85|\xe3\x83\x86|\xe3\x83\x87|\xe3\x83\x88|\xe3\x83\x89|\xe3\x83\x8a|\xe3\x83\x8b|\xe3\x83\x8c|\xe3\x83\x8d|\xe3\x83\x8e|\xe3\x83\x8f|\xe3\x83\x90|\xe3\x83\x91|\xe3\x83\x92|\xe3\x83\x93|\xe3\x83\x94|\xe3\x83\x95|\xe3\x83\x96|\xe3\x83\x97|\xe3\x83\x98|\xe3\x83\x99|\xe3\x83\x9a|\xe3\x83\x9b|\xe3\x83\x9c|\xe3\x83\x9d|\xe3\x83\x9e|\xe3\x83\x9f|\xe3\x83\xa0|\xe3\x83\xa1|\xe3\x83\xa2|\xe3\x83\xa3|\xe3\x83\xa4|\xe3\x83\xa5|\xe3\x83\xa6|\xe3\x83\xa7|\xe3\x83\xa8|\xe3\x83\xa9|\xe3\x83\xaa|\xe3\x83\xab|\xe3\x83\xac|\xe3\x83\xad|\xe3\x83\xae|\xe3\x83\xaf|\xe3\x83\xb0|\xe3\x83\xb1|\xe3\x83\xb2|\xe3\x83\xb3)/$_kata2hira{$1}/eg; $this; } sub _utf16le_utf16 { my $this = shift; my $str = shift; my $result = ''; foreach my $ch (unpack('v*', $str)) { $result .= pack('n', $ch); } $result; } # ----------------------------------------------------------------------------- # AU敞矢机タグ恃垂 # # utf8面のAU敞矢机をへ恃垂 sub _u2ai1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($eu2a1)) { $eu2a1 = $this->_getFile('jcode/emoji2/eu2a.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $d; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? $1 : (length($1) == 3) ? $1 : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2a1, ($ch - 0x0fe000) * 2, 2), $d = unpack('n', $c), $c =~ tr,\0,,d, ($d <= 0x0336) ? $RE{E_ICON_AU_START} . $d . $RE{E_ICON_AU_END} : ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub sjis_icon_au2 { my $this = shift; $this->_u2s($this->_u2ai2($this->{str})); } sub _u2ai2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($eu2a2)) { $eu2a2 = $this->_getFile('jcode/emoji2/eu2a2.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $d; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? $1 : (length($1) == 3) ? $1 : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2a2, ($ch - 0x0fe000) * 2, 2), $d = unpack('n', $c), $c =~ tr,\0,,d, ($d <= 0x0336) ? $RE{E_ICON_AU_START} . $d . $RE{E_ICON_AU_END} : ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub _u2si2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2i2)) { $eu2i2 = $this->_getFile('jcode/emoji2/eu2i2.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2i2, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub z2hAlpha { my $this = shift; if(!defined(%_z2hAlpha)) { $this->_loadConvTable; } $this->{str} =~ s/(\xef\xbc\xa1|\xef\xbc\xa2|\xef\xbc\xa3|\xef\xbc\xa4|\xef\xbc\xa5|\xef\xbc\xa6|\xef\xbc\xa7|\xef\xbc\xa8|\xef\xbc\xa9|\xef\xbc\xaa|\xef\xbc\xab|\xef\xbc\xac|\xef\xbc\xad|\xef\xbc\xae|\xef\xbc\xaf|\xef\xbc\xb0|\xef\xbc\xb1|\xef\xbc\xb2|\xef\xbc\xb3|\xef\xbc\xb4|\xef\xbc\xb5|\xef\xbc\xb6|\xef\xbc\xb7|\xef\xbc\xb8|\xef\xbc\xb9|\xef\xbc\xba|\xef\xbd\x81|\xef\xbd\x82|\xef\xbd\x83|\xef\xbd\x84|\xef\xbd\x85|\xef\xbd\x86|\xef\xbd\x87|\xef\xbd\x88|\xef\xbd\x89|\xef\xbd\x8a|\xef\xbd\x8b|\xef\xbd\x8c|\xef\xbd\x8d|\xef\xbd\x8e|\xef\xbd\x8f|\xef\xbd\x90|\xef\xbd\x91|\xef\xbd\x92|\xef\xbd\x93|\xef\xbd\x94|\xef\xbd\x95|\xef\xbd\x96|\xef\xbd\x97|\xef\xbd\x98|\xef\xbd\x99|\xef\xbd\x9a)/$_z2hAlpha{$1}/eg; $this; } sub splitCsv { my $this = shift; my $text = $this->{str}; my @field; chomp($text); while ($text =~ m/"([^"\\]*(?:(?:\\.|\"\")[^"\\]*)*)",?|([^,]+),?|,/g) { my $field = defined($1) ? $1 : (defined($2) ? $2 : ''); $field =~ s/["\\]"/"/g; push(@field, $field); } push(@field, '') if($text =~ m/,$/); \@field; } sub _ucs4_utf8 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $result = ''; for my $uc (unpack("N*", $str)) { $result .= ($uc < 0x80) ? chr($uc) : ($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) : ($uc < 0x10000) ? chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) : ($uc < 0x200000) ? chr(0xF0 | ($uc >> 18)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) : ($uc < 0x4000000) ? chr(0xF8 | ($uc >> 24)) . chr(0x80 | (($uc >> 18) & 0x3F)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) : chr(0xFC | ($uc >> 30)) . chr(0x80 | (($uc >> 24) & 0x3F)) . chr(0x80 | (($uc >> 18) & 0x3F)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)); } $result; } sub h2zSym { my $this = shift; if(!defined(%_h2zSym)) { $this->_loadConvTable; } $this->{str} =~ s/(\x20|\x21|\x22|\x23|\x24|\x25|\x26|\x27|\x28|\x29|\x2a|\x2b|\x2c|\x2d|\x2e|\x2f|\x3a|\x3b|\x3c|\x3d|\x3e|\x3f|\x40|\x5b|\x5c|\x5d|\x5e|_|\x60|\x7b|\x7c|\x7d|\x7e)/$_h2zSym{$1}/eg; $this; } sub sjis_jsky1 { my $this = shift; $this->_u2sj1($this->{str}); } sub utf8_icon_au1 { my $this = shift; $this->_u2ai1($this->{str}); } sub h2z { my $this = shift; $this->h2zKana; $this->h2zNum; $this->h2zAlpha; $this->h2zSym; $this; } sub _s2j3 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if (0x9f <= $c2) { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60); $c2 += 2; } else { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61); $c2 += 0x60 + ($c2 < 0x7f); } $S2J[unpack('n', $c)] = pack('CC', $c1 - 0x80, $c2 - 0x80); } # ----------------------------------------------------------------------------- # utf8 ==> sjis/敞矢机 # sub _u2s { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ( $U2S{$1} or ($U2S{$1} = ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), # UTF-3バイト(U+0x80-U+07FF)からsjis-1バイトへのマッピングはないので\0を猴近は涩妥はない ($c eq "\0\0") ? '&#' . $ch . ';' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '&#' . $ch . ';' ) ), ($c eq "\0\0") ? '&#' . $ch . ';' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? '?' : '&#' . $ch . ';' ) ) : (length($1) == 5) ? (($c1,$c2,$c3,$c4,$c5) = unpack("C5", $1), $ch = (($c1 & 0x03) << 24)|(($c2 & 0x3F) << 18)| (($c3 & 0x3f) << 12)|(($c4 & 0x3f) << 6)| ($c5 & 0x3F), '&#' . $ch . ';' ) : ( ($c1,$c2,$c3,$c4,$c5,$c6) = unpack("C6", $1), $ch = (($c1 & 0x03) << 30)|(($c2 & 0x3F) << 24)| (($c3 & 0x3f) << 18)|(($c4 & 0x3f) << 12)| (($c5 & 0x3f) << 6)|($c6 & 0x3F), '&#' . $ch . ';' ) ) ) ) /eg; $str; } # ----------------------------------------------------------------------------- # $bytes_sjis = $unijp->sjis(); # sub sjis { my $this = shift; $this->_u2s($this->{str}); } sub euc_icon_au2 { my $this = shift; $this->_s2e($this->_u2s($this->_u2ai2($this->{str}))); } sub _u2si1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2i1)) { $eu2i1 = $this->_getFile('jcode/emoji2/eu2i.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2i1, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub _sj2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ej2u1)) { $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat'); } my $l; my $j1; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_JSKYv1}|[\x80-\xff])/ (length($1) <= 2) ? ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) : ( $l = $1, $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v1}),,o, $j1 = $1, $uc = '', $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u1, (unpack('n', $j1 . $1) - 0x4500) * 4, 4), ''!ego, $uc =~ tr,\0,,d, $uc ) /eg; $str; } # ----------------------------------------------------------------------------- # tag2bin # sub tag2bin { my $this = shift; $this->{str} =~ s/\&(\#\d+|\#x[a-f0-9A-F]+);/ (substr($1, 1, 1) eq 'x') ? $this->_ucs4_utf8(pack('N', hex(substr($1, 2)))) : $this->_ucs4_utf8(pack('N', substr($1, 1))) /eg; $this; } sub euc_icon_au { my $this = shift; $this->_s2e($this->_u2s($this->_u2ai2($this->{str}))); } sub z2hSym { my $this = shift; if(!defined(%_z2hSym)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x80\x80|\xef\xbc\x8c|\xef\xbc\x8e|\xef\xbc\x9a|\xef\xbc\x9b|\xef\xbc\x9f|\xef\xbc\x81|\xef\xbd\x80|\xef\xbc\xbe|\xef\xbc\xbf|\xef\xbc\x8f|\xef\xbd\x9e|\xef\xbd\x9c|\xe2\x80\x99|\xe2\x80\x9d|\xef\xbc\x88|\xef\xbc\x89|\xef\xbc\xbb|\xef\xbc\xbd|\xef\xbd\x9b|\xef\xbd\x9d|\xef\xbc\x8b|\xef\xbc\x8d|\xef\xbc\x9d|\xef\xbc\x9c|\xef\xbc\x9e|\xef\xbf\xa5|\xef\xbc\x84|\xef\xbc\x85|\xef\xbc\x83|\xef\xbc\x86|\xef\xbc\x8a|\xef\xbc\xa0|\xe3\x80\x9c)/$_z2hSym{$1}/eg; $this; } sub _utf16_utf8 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $result = ''; my $sa; foreach my $uc (unpack("n*", $str)) { ($uc >= 0xd800 and $uc <= 0xdbff and $sa = $uc and next); ($uc >= 0xdc00 and $uc <= 0xdfff and ($uc = ((($sa - 0xd800) << 10)|($uc - 0xdc00))+0x10000)); $result .= $U2T[$uc] ? $U2T[$uc] : ($U2T[$uc] = ($uc < 0x80) ? chr($uc) : ($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) : ($uc < 0x10000) ? chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F)) : chr(0xF0 | ($uc >> 18)) . chr(0x80 | (($uc >> 12) & 0x3F)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F))); } $result; } # ----------------------------------------------------------------------------- # $bytes_ucs2 = $unijp->ucs2(); # sub ucs2 { my $this = shift; $this->_utf8_ucs2($this->{str}); } sub jis_au2 { my $this = shift; $this->_u2ja2($this->{str}); } sub h2zNum { my $this = shift; if(!defined(%_h2zNum)) { $this->_loadConvTable; } $this->{str} =~ s/(0|1|2|3|4|5|6|7|8|9)/$_h2zNum{$1}/eg; $this; } sub _si2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ei2u1)) { $ei2u1 = $this->_getFile('jcode/emoji2/ei2u.dat'); } $str =~ s/(\&\#(\d+);)/ ($2 >= 0xf800 and $2 <= 0xf9ff) ? pack('n', $2) : $1 /eg; my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_IMODEv1}|[\x80-\xff])/ $S2U{$1} or ($S2U{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xf800 and $l <= 0xf9ff) ? ( $uc = substr($ei2u1, ($l - 0xf800) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } sub h2zKanaK { my $this = shift; if(!defined(%_h2zKanaK)) { $this->_loadConvTable; } $this->{str} =~ s/(\xef\xbd\xa1|\xef\xbd\xa2|\xef\xbd\xa3|\xef\xbd\xa4|\xef\xbd\xa5|\xef\xbd\xa6|\xef\xbd\xa7|\xef\xbd\xa8|\xef\xbd\xa9|\xef\xbd\xaa|\xef\xbd\xab|\xef\xbd\xac|\xef\xbd\xad|\xef\xbd\xae|\xef\xbd\xaf|\xef\xbd\xb0|\xef\xbd\xb1|\xef\xbd\xb2|\xef\xbd\xb3|\xef\xbd\xb4|\xef\xbd\xb5|\xef\xbd\xb6|\xef\xbd\xb7|\xef\xbd\xb8|\xef\xbd\xb9|\xef\xbd\xba|\xef\xbd\xbb|\xef\xbd\xbc|\xef\xbd\xbd|\xef\xbd\xbe|\xef\xbd\xbf|\xef\xbe\x80|\xef\xbe\x81|\xef\xbe\x82|\xef\xbe\x83|\xef\xbe\x84|\xef\xbe\x85|\xef\xbe\x86|\xef\xbe\x87|\xef\xbe\x88|\xef\xbe\x89|\xef\xbe\x8a|\xef\xbe\x8b|\xef\xbe\x8c|\xef\xbe\x8d|\xef\xbe\x8e|\xef\xbe\x8f|\xef\xbe\x90|\xef\xbe\x91|\xef\xbe\x92|\xef\xbe\x93|\xef\xbe\x94|\xef\xbe\x95|\xef\xbe\x96|\xef\xbe\x97|\xef\xbe\x98|\xef\xbe\x99|\xef\xbe\x9a|\xef\xbe\x9b|\xef\xbe\x9c|\xef\xbe\x9d|\xef\xbe\x9e|\xef\xbe\x9f)/$_h2zKanaK{$1}/eg; $this; } sub strlen { my $this = shift; my $ch_re = '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}'; my $length = 0; foreach my $c(split(/($ch_re)/,$this->{str})) { next if(length($c) == 0); $length += ((length($c) >= 3) ? 2 : 1); } return $length; } sub _utf8_utf16 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $c1; my $c2; my $c3; my $c4; my $uc; $str =~ s/([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})/ $T2U{$1} or ($T2U{$1} = ((length($1) == 1) ? pack("n", unpack("C", $1)) : (length($1) == 2) ? (($c1,$c2) = unpack("C2", $1), pack("n", (($c1 & 0x1F)<<6)|($c2 & 0x3F))) : (length($1) == 3) ? (($c1,$c2,$c3) = unpack("C3", $1), pack("n", (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F))) : (length($1) == 4) ? (($c1,$c2,$c3,$c4) = unpack("C4", $1), ($uc = ((($c1 & 0x07) << 18)|(($c2 & 0x3F) << 12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F)) - 0x10000), (($uc < 0x100000) ? pack("nn", (($uc >> 10) | 0xd800), (($uc & 0x3ff) | 0xdc00)) : "\0?")) : "\0?") ); /eg; $str; } sub sjis_icon_au1 { my $this = shift; $this->_u2s($this->_u2ai1($this->{str})); } sub jis_icon_au1 { my $this = shift; $this->_s2j($this->_u2s($this->_u2ai1($this->{str}))); } sub strcutu { my $result = &strcut; if( $]>=5.008 && $this->{icode} ne 'binary' ) { foreach(@$result) { Encode::_utf8_on($_); } } $result; } sub sjis_jsky2 { my $this = shift; $this->_u2sj2($this->{str}); } # ----------------------------------------------------------------------------- # $code = Unicode::Japanese->getcode($str); # sub getcode { my $this = shift; my $str = shift; if( $]>=5.008 ) { Encode::_utf8_off($str); } my $l = length($str); if((($l % 4) == 0) and ($str =~ m/^(?:$RE{BOM4_BE}|$RE{BOM4_LE})/o)) { return 'utf32'; } if((($l % 2) == 0) and ($str =~ m/^(?:$RE{BOM2_BE}|$RE{BOM2_LE})/o)) { return 'utf16'; } my $str2; if(($l % 4) == 0) { $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF32_BE})//o); if($str2 eq '') { return 'utf32-be'; } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF32_LE})//o); if($str2 eq '') { return 'utf32-le'; } } if($str !~ m/[\e\x80-\xff]/) { return 'ascii'; } if($str =~ m/$RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA}/o) { if($str =~ m/(?:$RE{JIS_0208})(?:[^\e]{2})*$RE{E_JIS_AU}/o) { return 'jis-au'; } elsif($str =~ m/(?:$RE{E_JSKY})/o) { return 'jis-jsky'; } else { return 'jis'; } } if($str =~ m/(?:$RE{E_JSKY})/o) { return 'sjis-jsky'; } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C})//o); if($str2 eq '') { return 'euc'; } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA})//o); if($str2 eq '') { return 'sjis'; } my $str3; $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_IMODE})//o); if($str3 eq '') { return 'sjis-imode'; } $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_DOTI})//o); if($str3 eq '') { return 'sjis-doti'; } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF8})//o); if($str2 eq '') { return 'utf8'; } return 'unknown'; } sub _j2s2 { my $this = shift; my $esc = shift; my $str = shift; if($esc eq $RE{JIS_0212}) { $str =~ s/../$CHARCODE{UNDEF_SJIS}/g; } elsif($esc !~ m/^$RE{JIS_ASC}/) { $str =~ tr/\x21-\x7e/\xa1-\xfe/; if($esc =~ m/^$RE{JIS_0208}/) { $str =~ s/($RE{EUC_C})/ $J2S[unpack('n', $1)] or $this->_j2s3($1) /geo; } } $str; } sub sjis_imode2 { my $this = shift; $this->_u2si2($this->{str}); } sub _validate_utf8 { my $pkg = shift; my $str = shift; defined($str) and $str =~ s{ # 2 bytes char which is restricted 1 byte. # [\xc0-\xc1] [\x80-\xbf] | # 3 bytes char which is restricted <= 2 bytes. # \xe0 [\x80-\x9f] [\x80-\xbf] | # 4 bytes char which is restricted <= 3 bytes. # \xf0 [\x80-\x8f] [\x80-\xbf] [\x80-\xbf] | # > U+10FFFF (4byte) # \xf4 [\x90-\xbf] [\x80-\xbf] [\x80-\xbf] |[\xf5-\xf7] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] | # > U+10FFFF (5byte) # [\xf8-\xfb] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] | # > U+10FFFF (6byte) # [\xfc-\xfd] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] }{?}xg; $str; } sub h2zKanaD { my $this = shift; if(!defined(%_h2zKanaD)) { $this->_loadConvTable; } $this->{str} =~ s/(\xef\xbd\xb3\xef\xbe\x9e|\xef\xbd\xb6\xef\xbe\x9e|\xef\xbd\xb7\xef\xbe\x9e|\xef\xbd\xb8\xef\xbe\x9e|\xef\xbd\xb9\xef\xbe\x9e|\xef\xbd\xba\xef\xbe\x9e|\xef\xbd\xbb\xef\xbe\x9e|\xef\xbd\xbc\xef\xbe\x9e|\xef\xbd\xbd\xef\xbe\x9e|\xef\xbd\xbe\xef\xbe\x9e|\xef\xbd\xbf\xef\xbe\x9e|\xef\xbe\x80\xef\xbe\x9e|\xef\xbe\x81\xef\xbe\x9e|\xef\xbe\x82\xef\xbe\x9e|\xef\xbe\x83\xef\xbe\x9e|\xef\xbe\x84\xef\xbe\x9e|\xef\xbe\x8a\xef\xbe\x9e|\xef\xbe\x8a\xef\xbe\x9f|\xef\xbe\x8b\xef\xbe\x9e|\xef\xbe\x8b\xef\xbe\x9f|\xef\xbe\x8c\xef\xbe\x9e|\xef\xbe\x8c\xef\xbe\x9f|\xef\xbe\x8d\xef\xbe\x9e|\xef\xbe\x8d\xef\xbe\x9f|\xef\xbe\x8e\xef\xbe\x9e|\xef\xbe\x8e\xef\xbe\x9f)/$_h2zKanaD{$1}/eg; $this; } sub z2hKanaK { my $this = shift; if(!defined(%_z2hKanaK)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x80\x81|\xe3\x80\x82|\xe3\x83\xbb|\xe3\x82\x9b|\xe3\x82\x9c|\xe3\x83\xbc|\xe3\x80\x8c|\xe3\x80\x8d|\xe3\x82\xa1|\xe3\x82\xa2|\xe3\x82\xa3|\xe3\x82\xa4|\xe3\x82\xa5|\xe3\x82\xa6|\xe3\x82\xa7|\xe3\x82\xa8|\xe3\x82\xa9|\xe3\x82\xaa|\xe3\x82\xab|\xe3\x82\xad|\xe3\x82\xaf|\xe3\x82\xb1|\xe3\x82\xb3|\xe3\x82\xb5|\xe3\x82\xb7|\xe3\x82\xb9|\xe3\x82\xbb|\xe3\x82\xbd|\xe3\x82\xbf|\xe3\x83\x81|\xe3\x83\x83|\xe3\x83\x84|\xe3\x83\x86|\xe3\x83\x88|\xe3\x83\x8a|\xe3\x83\x8b|\xe3\x83\x8c|\xe3\x83\x8d|\xe3\x83\x8e|\xe3\x83\x8f|\xe3\x83\x92|\xe3\x83\x95|\xe3\x83\x98|\xe3\x83\x9b|\xe3\x83\x9e|\xe3\x83\x9f|\xe3\x83\xa0|\xe3\x83\xa1|\xe3\x83\xa2|\xe3\x83\xa3|\xe3\x83\xa4|\xe3\x83\xa5|\xe3\x83\xa6|\xe3\x83\xa7|\xe3\x83\xa8|\xe3\x83\xa9|\xe3\x83\xaa|\xe3\x83\xab|\xe3\x83\xac|\xe3\x83\xad|\xe3\x83\xaf|\xe3\x83\xb2|\xe3\x83\xb3)/$_z2hKanaK{$1}/eg; $this; } sub h2zAlpha { my $this = shift; if(!defined(%_h2zAlpha)) { $this->_loadConvTable; } $this->{str} =~ s/(A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)/$_h2zAlpha{$1}/eg; $this; } sub _utf16_utf16 { my $this = shift; my $str = shift; if($str =~ s/^\xfe\xff//) { $str = $this->_utf16be_utf16($str); } elsif($str =~ s/^\xff\xfe//) { $str = $this->_utf16le_utf16($str); } else { $str = $this->_utf16be_utf16($str); } $str; } # ----------------------------------------------------------------------------- # Unicode 柒 陵高恃垂 # sub _ucs2_utf8 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $result = ''; for my $uc (unpack("n*", $str)) { $result .= $U2T[$uc] ? $U2T[$uc] : ($U2T[$uc] = ($uc < 0x80) ? chr($uc) : ($uc < 0x800) ? chr(0xC0 | ($uc >> 6)) . chr(0x80 | ($uc & 0x3F)) : chr(0xE0 | ($uc >> 12)) . chr(0x80 | (($uc >> 6) & 0x3F)) . chr(0x80 | ($uc & 0x3F))); } $result; } # ----------------------------------------------------------------------------- # $unijp->set($str,[$icode,[$encode]]); # sub set { my $this = shift; my $str = shift; my $icode = shift; my $encode = shift; if(ref($str)) { die "String->set, Param[1] is Ref.\n"; } if(ref($icode)) { die "String->set, Param[2] is Ref.\n"; } if(ref($encode)) { die "String->set, Param[3] is Ref.\n"; } if( $]>=5.008 ) { Encode::_utf8_off($str); } if(defined($encode)) { if($encode eq 'base64') { $str = $this->_decodeBase64($str); } else { die "String->set, Param[3] encode name error.\n"; } } if(!defined($icode)) { # omitted then 'utf8' $this->{str} = $this->_validate_utf8($str); $this->{icode} = 'utf8'; } else { $icode = lc($icode); if($icode eq 'auto') { $icode = $this->getcode($str); if($icode eq 'unknown') { $icode = 'binary'; } } if($icode eq 'utf8') { $this->{str} = $this->_validate_utf8($str); } elsif($icode eq 'ucs2') { $this->{str} = $this->_ucs2_utf8($str); } elsif($icode eq 'ucs4') { $this->{str} = $this->_ucs4_utf8($str); } elsif($icode eq 'utf16-be') { $this->{str} = $this->_utf16_utf8($this->_utf16be_utf16($str)); } elsif($icode eq 'utf16-le') { $this->{str} = $this->_utf16_utf8($this->_utf16le_utf16($str)); } elsif($icode eq 'utf16') { $this->{str} = $this->_utf16_utf8($this->_utf16_utf16($str)); } elsif($icode eq 'utf32-be') { $this->{str} = $this->_ucs4_utf8($this->_utf32be_ucs4($str)); } elsif($icode eq 'utf32-le') { $this->{str} = $this->_ucs4_utf8($this->_utf32le_ucs4($str)); } elsif($icode eq 'utf32') { $this->{str} = $this->_ucs4_utf8($this->_utf32_ucs4($str)); } elsif($icode eq 'jis') { $this->{str} = $this->_s2u($this->_j2s($str)); } elsif($icode eq 'euc') { $this->{str} = $this->_s2u($this->_e2s($str)); } elsif($icode eq 'sjis') { $this->{str} = $this->_s2u($str); } elsif($icode eq 'sjis-imode') { $this->{str} = $this->_si2u2($str); } elsif($icode eq 'sjis-imode1') { $this->{str} = $this->_si2u1($str); } elsif($icode eq 'sjis-imode2') { $this->{str} = $this->_si2u2($str); } elsif($icode eq 'sjis-doti') { $this->{str} = $this->_sd2u($str); } elsif($icode eq 'sjis-doti1') { $this->{str} = $this->_sd2u($str); } elsif($icode eq 'sjis-jsky') { $this->{str} = $this->_sj2u2($str); } elsif($icode eq 'sjis-jsky1') { $this->{str} = $this->_sj2u1($str); } elsif($icode eq 'sjis-jsky2') { $this->{str} = $this->_sj2u2($str); } elsif($icode eq 'jis-jsky') { $this->{str} = $this->_sj2u2($this->_j2s($str)); } elsif($icode eq 'jis-jsky1') { $this->{str} = $this->_sj2u1($this->_j2s($str)); } elsif($icode eq 'jis-jsky2') { $this->{str} = $this->_sj2u2($this->_j2s($str)); } elsif($icode eq 'jis-au') { $this->{str} = $this->_ja2u2($str); } elsif($icode eq 'jis-au1') { $this->{str} = $this->_ja2u1($this->_j2s($str)); } elsif($icode eq 'jis-au2') { $this->{str} = $this->_ja2u2($str); } elsif($icode eq 'sjis-icon-au') { $this->{str} = $this->_ai2u2($this->_s2u($str)); } elsif($icode eq 'sjis-icon-au1') { $this->{str} = $this->_ai2u1($this->_s2u($str)); } elsif($icode eq 'sjis-icon-au2') { $this->{str} = $this->_ai2u2($this->_s2u($str)); } elsif($icode eq 'euc-icon-au') { $this->{str} = $this->_ai2u2($this->_s2u($this->_e2s($str))); } elsif($icode eq 'euc-icon-au1') { $this->{str} = $this->_ai2u1($this->_s2u($this->_e2s($str))); } elsif($icode eq 'euc-icon-au2') { $this->{str} = $this->_ai2u2($this->_s2u($this->_e2s($str))); } elsif($icode eq 'jis-icon-au') { $this->{str} = $this->_ai2u2($this->_s2u($this->_j2s($str))); } elsif($icode eq 'jis-icon-au1') { $this->{str} = $this->_ai2u1($this->_s2u($this->_j2s($str))); } elsif($icode eq 'jis-icon-au2') { $this->{str} = $this->_ai2u2($this->_s2u($this->_j2s($str))); } elsif($icode eq 'utf8-icon-au') { $this->{str} = $this->_ai2u2($str); } elsif($icode eq 'utf8-icon-au1') { $this->{str} = $this->_ai2u1($str); } elsif($icode eq 'utf8-icon-au2') { $this->{str} = $this->_ai2u2($str); } elsif($icode eq 'ascii') { $this->{str} = $str; } elsif($icode eq 'binary') { $this->{str} = $str; } else { use Carp; croak "icode error [$icode]"; } $this->{icode} = $icode; } $this; } sub _sj2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ej2u1)) { $ej2u1 = $this->_getFile('jcode/emoji2/ej2u.dat'); } if(!defined($ej2u2)) { $ej2u2 = $this->_getFile('jcode/emoji2/ej2u2.dat'); } my $l; my $j1; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_JSKY}|[\x80-\xff])/ (length($1) <= 2) ? ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) : ( $l = $1, ( $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v1}),,o ? ( $j1 = $1, $uc = '', $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u1, (unpack('n', $j1 . $1) - 0x4500) * 4, 4), ''!ego, $uc =~ tr,\0,,d, $uc ) : ( $l =~ s,^$RE{E_JSKY_START}($RE{E_JSKY1v2}),,o, $j1 = $1, $uc = '', $l =~ s!($RE{E_JSKY2})!$uc .= substr($ej2u2, (unpack('n', $j1 . $1) - 0x4f00) * 4, 4), ''!ego, $uc =~ tr,\0,,d, $uc ) ) ) /eg; $str; } # ----------------------------------------------------------------------------- # @codelist = Unicode::Japanese->getcodelist($str); # sub getcodelist { my $this = shift; my $str = shift; my @codelist; if( $]>=5.008 ) { Encode::_utf8_off($str); } my $l = length($str); if((($l % 4) == 0) and ($str =~ m/^(?:$RE{BOM4_BE}|$RE{BOM4_LE})/o)) { push(@codelist, 'utf32'); } if((($l % 2) == 0) and ($str =~ m/^(?:$RE{BOM2_BE}|$RE{BOM2_LE})/o)) { push(@codelist, 'utf16'); } my $str2; if(($l % 4) == 0) { $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF32_BE})//o); if($str2 eq '') { push(@codelist, 'utf32-be'); } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF32_LE})//o); if($str2 eq '') { push(@codelist, 'utf32-le'); } } if($str !~ m/[\e\x80-\xff]/) { push(@codelist, 'ascii'); } if($str =~ m/$RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA}/o) { if($str =~ m/(?:$RE{JIS_0208})(?:[^\e]{2})*$RE{E_JIS_AU}/o) { push(@codelist, 'jis-au'); } elsif($str =~ m/(?:$RE{E_JSKY})/o) { push(@codelist, 'jis-jsky'); } else { push(@codelist, 'jis'); } } if($str =~ m/(?:$RE{E_JSKY})/o) { push(@codelist, 'sjis-jsky'); } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C})//o); if($str2 eq '') { push(@codelist, 'euc'); } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA})//o); if($str2 eq '') { push(@codelist, 'sjis'); } my $str3; $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_IMODE})//o); if($str3 eq '') { push(@codelist, 'sjis-imode'); } $str3 = $str2; 1 while($str3 =~ s/^(?:$RE{ASCII}|$RE{SJIS_DBCS}|$RE{SJIS_KANA}|$RE{E_DOTI})//o); if($str3 eq '') { push(@codelist, 'sjis-doti'); } $str2 = $str; 1 while($str2 =~ s/^(?:$RE{UTF8})//o); if($str2 eq '') { push(@codelist, 'utf8'); } @codelist or push(@codelist, 'unknown'); @codelist; } sub _utf32_ucs4 { my $this = shift; my $str = shift; if($str =~ s/^\x00\x00\xfe\xff//) { $str = $this->_utf32be_ucs4($str); } elsif($str =~ s/^\xff\xfe\x00\x00//) { $str = $this->_utf32le_ucs4($str); } else { $str = $this->_utf32be_ucs4($str); } $str; } sub jis_icon_au { my $this = shift; $this->_s2j($this->_u2s($this->_u2ai2($this->{str}))); } sub _ai2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($ea2u2)) { $ea2u2 = $this->_getFile('jcode/emoji2/ea2u2.dat'); } my $c; $str =~ s/$RE{E_ICON_AU_START}(\d+)$RE{E_ICON_AU_END}/ ($1 > 0 and $1 <= 0x0336) ? ($c = substr($ea2u2, $1 * 4, 4), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c) : '?' /ige; $str; } sub utf8_icon_au2 { my $this = shift; $this->_u2ai2($this->{str}); } sub sjis_imode1 { my $this = shift; $this->_u2si1($this->{str}); } # ----------------------------------------------------------------------------- # $bytes_utf8 = $unijp->utf8(); # sub utf8 { my $this = shift; $this->_validate_utf8($this->{str}); } sub z2hKana { my $this = shift; $this->z2hKanaD; $this->z2hKanaK; $this; } # ----------------------------------------------------------------------------- # h2z/z2h Kana # sub h2zKana { my $this = shift; $this->h2zKanaD; $this->h2zKanaK; $this; } sub _s2e { my $this = shift; my $str = shift; if( $]>=5.008 ) { Encode::_utf8_off($str); } $str =~ s/($RE{SJIS_DBCS}|$RE{SJIS_KANA})/ $S2E[unpack('n', $1) or unpack('C', $1)] or $this->_s2e2($1) /geo; $str; } sub _u2sj1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2j1)) { $eu2j1 = $this->_getFile('jcode/emoji2/eu2j.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2j1, ($ch - 0x0fe000) * 5, 5), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; 1 while($str =~ s/($RE{E_JSKY_START})($RE{E_JSKY1})($RE{E_JSKY2}+)$RE{E_JSKY_END}$RE{E_JSKY_START}\2($RE{E_JSKY2})($RE{E_JSKY_END})/$1$2$3$4$5/o); $str; } sub _si2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ei2u2)) { $ei2u2 = $this->_getFile('jcode/emoji2/ei2u2.dat'); } $str =~ s/(\&\#(\d+);)/ ($2 >= 0xf800 and $2 <= 0xf9ff) ? pack('n', $2) : $1 /eg; my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_IMODE}|[\x80-\xff])/ $S2U{$1} or ($S2U{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xf800 and $l <= 0xf9ff) ? ( $uc = substr($ei2u2, ($l - 0xf800) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } sub _u2sj2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2j2)) { $eu2j2 = $this->_getFile('jcode/emoji2/eu2j2.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2j2, ($ch - 0x0fe000) * 5, 5), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; 1 while($str =~ s/($RE{E_JSKY_START})($RE{E_JSKY1})($RE{E_JSKY2}+)$RE{E_JSKY_END}$RE{E_JSKY_START}\2($RE{E_JSKY2})($RE{E_JSKY_END})/$1$2$3$4$5/o); $str; } # ----------------------------------------------------------------------------- # $bytes_str = $unijp->conv($ocode,[$encode]); # sub conv { my $this = shift; my $ocode = shift; my $encode = shift; my (@option) = @_; my $res; if(!defined($ocode)) { use Carp; croak(qq(String->conv, Param[1] is undef.)); } elsif($ocode eq 'utf8') { $res = $this->utf8; } elsif($ocode eq 'euc') { $res = $this->euc; } elsif($ocode eq 'jis') { $res = $this->jis; } elsif($ocode eq 'sjis') { $res = $this->sjis; } elsif($ocode eq 'sjis-imode') { $res = $this->sjis_imode; } elsif($ocode eq 'sjis-imode1') { $res = $this->sjis_imode1; } elsif($ocode eq 'sjis-imode2') { $res = $this->sjis_imode2; } elsif($ocode eq 'sjis-doti') { $res = $this->sjis_doti; } elsif($ocode eq 'sjis-doti1') { $res = $this->sjis_doti; } elsif($ocode eq 'sjis-jsky') { $res = $this->sjis_jsky; } elsif($ocode eq 'sjis-jsky1') { $res = $this->sjis_jsky1; } elsif($ocode eq 'sjis-jsky2') { $res = $this->sjis_jsky2; } elsif($ocode eq 'jis-jsky') { $res = $this->jis_jsky; } elsif($ocode eq 'jis-jsky1') { $res = $this->jis_jsky1; } elsif($ocode eq 'jis-jsky2') { $res = $this->jis_jsky2; } elsif($ocode eq 'jis-au') { $res = $this->jis_au2; } elsif($ocode eq 'jis-au1') { $res = $this->jis_au1; } elsif($ocode eq 'jis-au2') { $res = $this->jis_au2; } elsif($ocode eq 'sjis-icon-au') { $res = $this->sjis_icon_au2; } elsif($ocode eq 'sjis-icon-au1') { $res = $this->sjis_icon_au1; } elsif($ocode eq 'sjis-icon-au2') { $res = $this->sjis_icon_au2; } elsif($ocode eq 'jis-icon-au') { $res = $this->jis_icon_au2; } elsif($ocode eq 'jis-icon-au1') { $res = $this->jis_icon_au1; } elsif($ocode eq 'jis-icon-au2') { $res = $this->jis_icon_au2; } elsif($ocode eq 'euc-icon-au') { $res = $this->euc_icon_au2; } elsif($ocode eq 'euc-icon-au1') { $res = $this->euc_icon_au1; } elsif($ocode eq 'euc-icon-au2') { $res = $this->euc_icon_au2; } elsif($ocode eq 'utf8-icon-au') { $res = $this->utf8_icon_au2; } elsif($ocode eq 'utf8-icon-au1') { $res = $this->utf8_icon_au1; } elsif($ocode eq 'utf8-icon-au2') { $res = $this->utf8_icon_au2; } elsif($ocode eq 'ucs2') { $res = $this->ucs2; } elsif($ocode eq 'ucs4') { $res = $this->ucs4; } elsif($ocode eq 'utf16') { $res = $this->utf16; } elsif($ocode eq 'binary') { $res = $this->{str}; } else { use Carp; croak(qq(String->conv, Param[1] "$ocode" is error.)); } if(defined($encode)) { if($encode eq 'base64') { $res = $this->_encodeBase64($res, @option); } else { use Carp; croak(qq(String->conv, Param[2] "$encode" encode name error.)); } } $res; } sub utf8_icon_au { my $this = shift; $this->_u2ai2($this->{str}); } sub _utf16be_utf16 { my $this = shift; my $str = shift; $str; } # ----------------------------------------------------------------------------- # $bytes_doti = $unijp->sjis_doti(); # sub sjis_doti { my $this = shift; $this->_u2sd($this->{str}); } sub jis_jsky2 { my $this = shift; $this->_s2j($this->_u2sj2($this->{str})); } sub _e2s { my $this = shift; my $str = shift; $str =~ s/($RE{EUC_KANA}|$RE{EUC_0212}|$RE{EUC_C})/ $E2S[unpack('n', $1) or unpack('N', "\0" . $1)] or $this->_e2s2($1) /geo; $str; } sub hira2kata { my $this = shift; if(!defined(%_hira2kata)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x81\x81|\xe3\x81\x82|\xe3\x81\x83|\xe3\x81\x84|\xe3\x81\x85|\xe3\x81\x86|\xe3\x81\x87|\xe3\x81\x88|\xe3\x81\x89|\xe3\x81\x8a|\xe3\x81\x8b|\xe3\x81\x8c|\xe3\x81\x8d|\xe3\x81\x8e|\xe3\x81\x8f|\xe3\x81\x90|\xe3\x81\x91|\xe3\x81\x92|\xe3\x81\x93|\xe3\x81\x94|\xe3\x81\x95|\xe3\x81\x96|\xe3\x81\x97|\xe3\x81\x98|\xe3\x81\x99|\xe3\x81\x9a|\xe3\x81\x9b|\xe3\x81\x9c|\xe3\x81\x9d|\xe3\x81\x9e|\xe3\x81\x9f|\xe3\x81\xa0|\xe3\x81\xa1|\xe3\x81\xa2|\xe3\x81\xa3|\xe3\x81\xa4|\xe3\x81\xa5|\xe3\x81\xa6|\xe3\x81\xa7|\xe3\x81\xa8|\xe3\x81\xa9|\xe3\x81\xaa|\xe3\x81\xab|\xe3\x81\xac|\xe3\x81\xad|\xe3\x81\xae|\xe3\x81\xaf|\xe3\x81\xb0|\xe3\x81\xb1|\xe3\x81\xb2|\xe3\x81\xb3|\xe3\x81\xb4|\xe3\x81\xb5|\xe3\x81\xb6|\xe3\x81\xb7|\xe3\x81\xb8|\xe3\x81\xb9|\xe3\x81\xba|\xe3\x81\xbb|\xe3\x81\xbc|\xe3\x81\xbd|\xe3\x81\xbe|\xe3\x81\xbf|\xe3\x82\x80|\xe3\x82\x81|\xe3\x82\x82|\xe3\x82\x83|\xe3\x82\x84|\xe3\x82\x85|\xe3\x82\x86|\xe3\x82\x87|\xe3\x82\x88|\xe3\x82\x89|\xe3\x82\x8a|\xe3\x82\x8b|\xe3\x82\x8c|\xe3\x82\x8d|\xe3\x82\x8e|\xe3\x82\x8f|\xe3\x82\x90|\xe3\x82\x91|\xe3\x82\x92|\xe3\x82\x93)/$_hira2kata{$1}/eg; $this; } # ----------------------------------------------------------------------------- # $bytes_eucjp = $unijp->euc(); # sub euc { my $this = shift; $this->_s2e($this->sjis); } sub _j2s3 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if ($c1 % 2) { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x31 : 0x71); $c2 -= 0x60 + ($c2 < 0xe0); } else { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x30 : 0x70); $c2 -= 2; } $J2S[unpack('n', $c)] = pack('CC', $c1, $c2); } # ----------------------------------------------------------------------------- # $bytes_ucs4 = $unijp->ucs4(); # sub ucs4 { my $this = shift; $this->_utf8_ucs4($this->{str}); } sub splitCsvu { my $result = &splitCsv; if( $]>=5.008 && $this->{icode} ne 'binary' ) { foreach(@$result) { Encode::_utf8_on($_); } } $result; } sub _sd2u { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ed2u)) { $ed2u = $this->_getFile('jcode/emoji2/ed2u.dat'); } $str =~ s/(\&\#(\d+);)/ ($2 >= 0xf000 and $2 <= 0xf4ff) ? pack('n', $2) : $1 /eg; my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|$RE{E_DOTI}|[\x80-\xff])/ $S2U{$1} or ($S2U{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xf000 and $l <= 0xf4ff) ? ( $uc = substr($ed2u, ($l - 0xf000) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xffff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } # utf8 -> jis-au2 sub _u2ja2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2a2s)) { $eu2a2s = $this->_getFile('jcode/emoji2/eu2a2s.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2a2s, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $this->_s2j($str); } sub sjis_doti1 { my $this = shift; $this->_u2sd($this->{str}); } # ----------------------------------------------------------------------------- # conversion methods (private). # sub _s2j { my $this = shift; my $str = shift; $str =~ s/((?:$RE{SJIS_DBCS}|$RE{SJIS_KANA})+)/ $this->_s2j2($1) . $ESC{ASC} /geo; $str; } sub _s2e2 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if (0xa1 <= $c1 && $c1 <= 0xdf) { $c2 = $c1; $c1 = 0x8e; } elsif (0x9f <= $c2) { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe0 : 0x60); $c2 += 2; } else { $c1 = $c1 * 2 - ($c1 >= 0xe0 ? 0xe1 : 0x61); $c2 += 0x60 + ($c2 < 0x7f); } $S2E[unpack('n', $c) or unpack('C', $1)] = pack('CC', $c1, $c2); } sub z2hKanaD { my $this = shift; if(!defined(%_z2hKanaD)) { $this->_loadConvTable; } $this->{str} =~ s/(\xe3\x82\xac|\xe3\x82\xae|\xe3\x82\xb0|\xe3\x82\xb2|\xe3\x82\xb4|\xe3\x82\xb6|\xe3\x82\xb8|\xe3\x82\xba|\xe3\x82\xbc|\xe3\x82\xbe|\xe3\x83\x80|\xe3\x83\x82|\xe3\x83\x85|\xe3\x83\x87|\xe3\x83\x89|\xe3\x83\x90|\xe3\x83\x91|\xe3\x83\x93|\xe3\x83\x94|\xe3\x83\x96|\xe3\x83\x97|\xe3\x83\x99|\xe3\x83\x9a|\xe3\x83\x9c|\xe3\x83\x9d|\xe3\x83\xb4)/$_z2hKanaD{$1}/eg; $this; } sub _u2sd { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2d)) { $eu2d = $this->_getFile('jcode/emoji2/eu2d.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2d, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $str; } sub _utf8_ucs2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $c1; my $c2; my $c3; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}|([^\x00-\x7f]))/ defined($2)?"\0$2": $T2U{$1} or ($T2U{$1} = ((length($1) == 1) ? pack("n", unpack("C", $1)) : (length($1) == 2) ? (($c1,$c2) = unpack("C2", $1), pack("n", (($c1 & 0x1F)<<6)|($c2 & 0x3F))) : (length($1) == 3) ? (($c1,$c2,$c3) = unpack("C3", $1), pack("n", (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F))) : "\0?")) /eg; $str; } # jis-au2 => utf8 sub _ja2u2 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ea2u2s)) { $ea2u2s = $this->_getFile('jcode/emoji2/ea2u2s.dat'); } $str = $this->_j2s($str); my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/ $SA2U2{$1} or ($SA2U2{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xeb00 and $l <= 0xeeff) ? ( $uc = substr($ea2u2s, ($l - 0xeb00) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xfcff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } sub euc_icon_au1 { my $this = shift; $this->_s2e($this->_u2s($this->_u2ai1($this->{str}))); } sub join_csv { &joinCsv; } # utf8面の矢机をAU敞矢机コ〖ドに恃垂 sub _ai2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($ea2u1)) { $ea2u1 = $this->_getFile('jcode/emoji2/ea2u.dat'); } my $c; $str =~ s/$RE{E_ICON_AU_START}(\d+)$RE{E_ICON_AU_END}/ ($1 > 0 and $1 <= 0x14a) ? ($c = substr($ea2u1, $1 * 4, 4), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c) : '?' /ige; $str; } # ----------------------------------------------------------------------------- # $bytes_au = $unijp->jis_au1(); # sub jis_au { my $this = shift; $this->_u2ja2($this->{str}); } # ----------------------------------------------------------------------------- # sjis/敞矢机 => utf8 # sub _s2u { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/ $S2U{$1} or ($S2U{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xfcff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } sub _utf32le_ucs4 { my $this = shift; my $str = shift; my $result = ''; foreach my $ch (unpack('V*', $str)) { $result .= pack('N', $ch); } $result; } sub jis_jsky1 { my $this = shift; $this->_s2j($this->_u2sj1($this->{str})); } sub jis_icon_au2 { my $this = shift; $this->_s2j($this->_u2s($this->_u2ai2($this->{str}))); } # ----------------------------------------------------------------------------- # $bytes_jsky = $unijp->sjis_jsky(); # sub sjis_jsky { my $this = shift; $this->_u2sj2($this->{str}); } # ----------------------------------------------------------------------------- # $bytes_imode = $unijp->sjis_imode(); # sub sjis_imode { my $this = shift; $this->_u2si2($this->{str}); } sub _e2s2 { my $this = shift; my $c = shift; my ($c1, $c2) = unpack('CC', $c); if ($c1 == 0x8e) { # SS2 $E2S[unpack('n', $c)] = chr($c2); } elsif ($c1 == 0x8f) { # SS3 $E2S[unpack('N', "\0" . $c)] = $CHARCODE{UNDEF_SJIS}; } else { #SS1 or X0208 if ($c1 % 2) { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x31 : 0x71); $c2 -= 0x60 + ($c2 < 0xe0); } else { $c1 = ($c1>>1) + ($c1 < 0xdf ? 0x30 : 0x70); $c2 -= 2; } $E2S[unpack('n', $c)] = pack('CC', $c1, $c2); } } sub _s2j2 { my $this = shift; my $str = shift; $str =~ s/((?:$RE{SJIS_DBCS})+|(?:$RE{SJIS_KANA})+)/ my $s = $1; if($s =~ m,^$RE{SJIS_KANA},o) { $s =~ tr,\xa1-\xdf,\x21-\x5f,; $ESC{KANA} . $s } else { $s =~ s!($RE{SJIS_DBCS})! $S2J[unpack('n', $1)] or $this->_s2j3($1) !geo; $ESC{JIS_0208} . $s; } /geo; $str; } sub jis_au1 { my $this = shift; $this->_u2ja1($this->{str}); } # ----------------------------------------------------------------------------- # $bytes_iso2022jp = $unijp->jis(); # sub jis { my $this = shift; $this->_s2j($this->sjis); } # ----------------------------------------------------------------------------- # encode/decode sub _encodeBase64 { my $this = shift; my $str = shift; my $eol = shift; my $res = ""; $eol = "\n" unless defined $eol; pos($str) = 0; # ensure start at the beginning while ($str =~ /(.{1,45})/gs) { $res .= substr(pack('u', $1), 1); chop($res); } $res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs # fix padding at the end my $padding = (3 - length($str) % 3) % 3; $res =~ s/.{$padding}$/'=' x $padding/e if $padding; # break encoded string into lines of no more than 76 characters each if (length $eol) { $res =~ s/(.{1,76})/$1$eol/g; } $res; } sub _utf8_ucs4 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; $str =~ s/([\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}|(.))/ defined($2) ? "\0\0\0$2" : (length($1) == 1) ? pack("N", unpack("C", $1)) : (length($1) == 2) ? do { ($c1,$c2) = unpack("C2", $1); my $n = (($c1 & 0x1F) << 6)|($c2 & 0x3F); pack("N", $n>=0x80 ? $n : unpack("C",'?')); } : (length($1) == 3) ? do { ($c1,$c2,$c3) = unpack("C3", $1); my $n = (($c1 & 0x0F) << 12)|(($c2 & 0x3F) << 6)| ($c3 & 0x3F); pack("N", $n>=0x800 ? $n : unpack("C",'?')); } : (length($1) == 4) ? do { ($c1,$c2,$c3,$c4) = unpack("C4", $1); my $n = (($c1 & 0x07) << 18)|(($c2 & 0x3F) << 12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F); pack("N", ($n>=0x010000 && $n<=0x10FFFF) ? $n : unpack("C",'?')); } : pack("N", unpack("C",'?')) /eg; $str; } # ----------------------------------------------------------------------------- # $bytes_utf8 = $unijp->get(); # sub get { my $this = shift; $this->{str}; } sub z2h { my $this = shift; $this->z2hKana; $this->z2hNum; $this->z2hAlpha; $this->z2hSym; $this; } # ----------------------------------------------------------------------------- # $chars_utf8 = $unijp->getu(); # sub getu { my $this = shift; my $str = $this->{str}; if( $]>=5.008 && $this->{icode} ne 'binary' ) { Encode::_utf8_on($str); } $str; } sub validate_utf8 { # my $safer_utf8 = Unicode::Japanese->validate_utf8($utf8_str); # $_[0]->_validate_utf8(@_[1..$#_]); } # ----------------------------------------------------------------------------- # split/join Csv # sub split_csv { &splitCsv; } sub sjis_icon_au { my $this = shift; $this->_u2s($this->_u2ai2($this->{str})); } sub _loadConvTable { %_h2zNum = ( "0" => "\xef\xbc\x90", "1" => "\xef\xbc\x91", "2" => "\xef\xbc\x92", "3" => "\xef\xbc\x93", "4" => "\xef\xbc\x94", "5" => "\xef\xbc\x95", "6" => "\xef\xbc\x96", "7" => "\xef\xbc\x97", "8" => "\xef\xbc\x98", "9" => "\xef\xbc\x99", ); %_z2hNum = ( "\xef\xbc\x90" => "0", "\xef\xbc\x91" => "1", "\xef\xbc\x92" => "2", "\xef\xbc\x93" => "3", "\xef\xbc\x94" => "4", "\xef\xbc\x95" => "5", "\xef\xbc\x96" => "6", "\xef\xbc\x97" => "7", "\xef\xbc\x98" => "8", "\xef\xbc\x99" => "9", ); %_h2zAlpha = ( "A" => "\xef\xbc\xa1", "B" => "\xef\xbc\xa2", "C" => "\xef\xbc\xa3", "D" => "\xef\xbc\xa4", "E" => "\xef\xbc\xa5", "F" => "\xef\xbc\xa6", "G" => "\xef\xbc\xa7", "H" => "\xef\xbc\xa8", "I" => "\xef\xbc\xa9", "J" => "\xef\xbc\xaa", "K" => "\xef\xbc\xab", "L" => "\xef\xbc\xac", "M" => "\xef\xbc\xad", "N" => "\xef\xbc\xae", "O" => "\xef\xbc\xaf", "P" => "\xef\xbc\xb0", "Q" => "\xef\xbc\xb1", "R" => "\xef\xbc\xb2", "S" => "\xef\xbc\xb3", "T" => "\xef\xbc\xb4", "U" => "\xef\xbc\xb5", "V" => "\xef\xbc\xb6", "W" => "\xef\xbc\xb7", "X" => "\xef\xbc\xb8", "Y" => "\xef\xbc\xb9", "Z" => "\xef\xbc\xba", "a" => "\xef\xbd\x81", "b" => "\xef\xbd\x82", "c" => "\xef\xbd\x83", "d" => "\xef\xbd\x84", "e" => "\xef\xbd\x85", "f" => "\xef\xbd\x86", "g" => "\xef\xbd\x87", "h" => "\xef\xbd\x88", "i" => "\xef\xbd\x89", "j" => "\xef\xbd\x8a", "k" => "\xef\xbd\x8b", "l" => "\xef\xbd\x8c", "m" => "\xef\xbd\x8d", "n" => "\xef\xbd\x8e", "o" => "\xef\xbd\x8f", "p" => "\xef\xbd\x90", "q" => "\xef\xbd\x91", "r" => "\xef\xbd\x92", "s" => "\xef\xbd\x93", "t" => "\xef\xbd\x94", "u" => "\xef\xbd\x95", "v" => "\xef\xbd\x96", "w" => "\xef\xbd\x97", "x" => "\xef\xbd\x98", "y" => "\xef\xbd\x99", "z" => "\xef\xbd\x9a", ); %_z2hAlpha = ( "\xef\xbc\xa1" => "A", "\xef\xbc\xa2" => "B", "\xef\xbc\xa3" => "C", "\xef\xbc\xa4" => "D", "\xef\xbc\xa5" => "E", "\xef\xbc\xa6" => "F", "\xef\xbc\xa7" => "G", "\xef\xbc\xa8" => "H", "\xef\xbc\xa9" => "I", "\xef\xbc\xaa" => "J", "\xef\xbc\xab" => "K", "\xef\xbc\xac" => "L", "\xef\xbc\xad" => "M", "\xef\xbc\xae" => "N", "\xef\xbc\xaf" => "O", "\xef\xbc\xb0" => "P", "\xef\xbc\xb1" => "Q", "\xef\xbc\xb2" => "R", "\xef\xbc\xb3" => "S", "\xef\xbc\xb4" => "T", "\xef\xbc\xb5" => "U", "\xef\xbc\xb6" => "V", "\xef\xbc\xb7" => "W", "\xef\xbc\xb8" => "X", "\xef\xbc\xb9" => "Y", "\xef\xbc\xba" => "Z", "\xef\xbd\x81" => "a", "\xef\xbd\x82" => "b", "\xef\xbd\x83" => "c", "\xef\xbd\x84" => "d", "\xef\xbd\x85" => "e", "\xef\xbd\x86" => "f", "\xef\xbd\x87" => "g", "\xef\xbd\x88" => "h", "\xef\xbd\x89" => "i", "\xef\xbd\x8a" => "j", "\xef\xbd\x8b" => "k", "\xef\xbd\x8c" => "l", "\xef\xbd\x8d" => "m", "\xef\xbd\x8e" => "n", "\xef\xbd\x8f" => "o", "\xef\xbd\x90" => "p", "\xef\xbd\x91" => "q", "\xef\xbd\x92" => "r", "\xef\xbd\x93" => "s", "\xef\xbd\x94" => "t", "\xef\xbd\x95" => "u", "\xef\xbd\x96" => "v", "\xef\xbd\x97" => "w", "\xef\xbd\x98" => "x", "\xef\xbd\x99" => "y", "\xef\xbd\x9a" => "z", ); %_h2zSym = ( "\x20" => "\xe3\x80\x80", "\x21" => "\xef\xbc\x81", "\x22" => "\xe2\x80\x9d", "\x23" => "\xef\xbc\x83", "\x24" => "\xef\xbc\x84", "\x25" => "\xef\xbc\x85", "\x26" => "\xef\xbc\x86", "\x27" => "\xe2\x80\x99", "\x28" => "\xef\xbc\x88", "\x29" => "\xef\xbc\x89", "\x2a" => "\xef\xbc\x8a", "\x2b" => "\xef\xbc\x8b", "\x2c" => "\xef\xbc\x8c", "\x2d" => "\xef\xbc\x8d", "\x2e" => "\xef\xbc\x8e", "\x2f" => "\xef\xbc\x8f", "\x3a" => "\xef\xbc\x9a", "\x3b" => "\xef\xbc\x9b", "\x3c" => "\xef\xbc\x9c", "\x3d" => "\xef\xbc\x9d", "\x3e" => "\xef\xbc\x9e", "\x3f" => "\xef\xbc\x9f", "\x40" => "\xef\xbc\xa0", "\x5b" => "\xef\xbc\xbb", "\x5c" => "\xef\xbf\xa5", "\x5d" => "\xef\xbc\xbd", "\x5e" => "\xef\xbc\xbe", "_" => "\xef\xbc\xbf", "\x60" => "\xef\xbd\x80", "\x7b" => "\xef\xbd\x9b", "\x7c" => "\xef\xbd\x9c", "\x7d" => "\xef\xbd\x9d", "\x7e" => "\xef\xbd\x9e", ); %_z2hSym = ( "\xe3\x80\x80" => "\x20", "\xef\xbc\x8c" => "\x2c", "\xef\xbc\x8e" => "\x2e", "\xef\xbc\x9a" => "\x3a", "\xef\xbc\x9b" => "\x3b", "\xef\xbc\x9f" => "\x3f", "\xef\xbc\x81" => "\x21", "\xef\xbd\x80" => "\x60", "\xef\xbc\xbe" => "\x5e", "\xef\xbc\xbf" => "_", "\xef\xbc\x8f" => "\x2f", "\xef\xbd\x9e" => "\x7e", "\xef\xbd\x9c" => "\x7c", "\xe2\x80\x99" => "\x27", "\xe2\x80\x9d" => "\x22", "\xef\xbc\x88" => "\x28", "\xef\xbc\x89" => "\x29", "\xef\xbc\xbb" => "\x5b", "\xef\xbc\xbd" => "\x5d", "\xef\xbd\x9b" => "\x7b", "\xef\xbd\x9d" => "\x7d", "\xef\xbc\x8b" => "\x2b", "\xef\xbc\x8d" => "\x2d", "\xef\xbc\x9d" => "\x3d", "\xef\xbc\x9c" => "\x3c", "\xef\xbc\x9e" => "\x3e", "\xef\xbf\xa5" => "\x5c", "\xef\xbc\x84" => "\x24", "\xef\xbc\x85" => "\x25", "\xef\xbc\x83" => "\x23", "\xef\xbc\x86" => "\x26", "\xef\xbc\x8a" => "\x2a", "\xef\xbc\xa0" => "\x40", "\xe3\x80\x9c" => "\x7e", ); %_h2zKanaK = ( "\xef\xbd\xa1" => "\xe3\x80\x82", "\xef\xbd\xa2" => "\xe3\x80\x8c", "\xef\xbd\xa3" => "\xe3\x80\x8d", "\xef\xbd\xa4" => "\xe3\x80\x81", "\xef\xbd\xa5" => "\xe3\x83\xbb", "\xef\xbd\xa6" => "\xe3\x83\xb2", "\xef\xbd\xa7" => "\xe3\x82\xa1", "\xef\xbd\xa8" => "\xe3\x82\xa3", "\xef\xbd\xa9" => "\xe3\x82\xa5", "\xef\xbd\xaa" => "\xe3\x82\xa7", "\xef\xbd\xab" => "\xe3\x82\xa9", "\xef\xbd\xac" => "\xe3\x83\xa3", "\xef\xbd\xad" => "\xe3\x83\xa5", "\xef\xbd\xae" => "\xe3\x83\xa7", "\xef\xbd\xaf" => "\xe3\x83\x83", "\xef\xbd\xb0" => "\xe3\x83\xbc", "\xef\xbd\xb1" => "\xe3\x82\xa2", "\xef\xbd\xb2" => "\xe3\x82\xa4", "\xef\xbd\xb3" => "\xe3\x82\xa6", "\xef\xbd\xb4" => "\xe3\x82\xa8", "\xef\xbd\xb5" => "\xe3\x82\xaa", "\xef\xbd\xb6" => "\xe3\x82\xab", "\xef\xbd\xb7" => "\xe3\x82\xad", "\xef\xbd\xb8" => "\xe3\x82\xaf", "\xef\xbd\xb9" => "\xe3\x82\xb1", "\xef\xbd\xba" => "\xe3\x82\xb3", "\xef\xbd\xbb" => "\xe3\x82\xb5", "\xef\xbd\xbc" => "\xe3\x82\xb7", "\xef\xbd\xbd" => "\xe3\x82\xb9", "\xef\xbd\xbe" => "\xe3\x82\xbb", "\xef\xbd\xbf" => "\xe3\x82\xbd", "\xef\xbe\x80" => "\xe3\x82\xbf", "\xef\xbe\x81" => "\xe3\x83\x81", "\xef\xbe\x82" => "\xe3\x83\x84", "\xef\xbe\x83" => "\xe3\x83\x86", "\xef\xbe\x84" => "\xe3\x83\x88", "\xef\xbe\x85" => "\xe3\x83\x8a", "\xef\xbe\x86" => "\xe3\x83\x8b", "\xef\xbe\x87" => "\xe3\x83\x8c", "\xef\xbe\x88" => "\xe3\x83\x8d", "\xef\xbe\x89" => "\xe3\x83\x8e", "\xef\xbe\x8a" => "\xe3\x83\x8f", "\xef\xbe\x8b" => "\xe3\x83\x92", "\xef\xbe\x8c" => "\xe3\x83\x95", "\xef\xbe\x8d" => "\xe3\x83\x98", "\xef\xbe\x8e" => "\xe3\x83\x9b", "\xef\xbe\x8f" => "\xe3\x83\x9e", "\xef\xbe\x90" => "\xe3\x83\x9f", "\xef\xbe\x91" => "\xe3\x83\xa0", "\xef\xbe\x92" => "\xe3\x83\xa1", "\xef\xbe\x93" => "\xe3\x83\xa2", "\xef\xbe\x94" => "\xe3\x83\xa4", "\xef\xbe\x95" => "\xe3\x83\xa6", "\xef\xbe\x96" => "\xe3\x83\xa8", "\xef\xbe\x97" => "\xe3\x83\xa9", "\xef\xbe\x98" => "\xe3\x83\xaa", "\xef\xbe\x99" => "\xe3\x83\xab", "\xef\xbe\x9a" => "\xe3\x83\xac", "\xef\xbe\x9b" => "\xe3\x83\xad", "\xef\xbe\x9c" => "\xe3\x83\xaf", "\xef\xbe\x9d" => "\xe3\x83\xb3", "\xef\xbe\x9e" => "\xe3\x82\x9b", "\xef\xbe\x9f" => "\xe3\x82\x9c", ); %_z2hKanaK = ( "\xe3\x80\x81" => "\xef\xbd\xa4", "\xe3\x80\x82" => "\xef\xbd\xa1", "\xe3\x83\xbb" => "\xef\xbd\xa5", "\xe3\x82\x9b" => "\xef\xbe\x9e", "\xe3\x82\x9c" => "\xef\xbe\x9f", "\xe3\x83\xbc" => "\xef\xbd\xb0", "\xe3\x80\x8c" => "\xef\xbd\xa2", "\xe3\x80\x8d" => "\xef\xbd\xa3", "\xe3\x82\xa1" => "\xef\xbd\xa7", "\xe3\x82\xa2" => "\xef\xbd\xb1", "\xe3\x82\xa3" => "\xef\xbd\xa8", "\xe3\x82\xa4" => "\xef\xbd\xb2", "\xe3\x82\xa5" => "\xef\xbd\xa9", "\xe3\x82\xa6" => "\xef\xbd\xb3", "\xe3\x82\xa7" => "\xef\xbd\xaa", "\xe3\x82\xa8" => "\xef\xbd\xb4", "\xe3\x82\xa9" => "\xef\xbd\xab", "\xe3\x82\xaa" => "\xef\xbd\xb5", "\xe3\x82\xab" => "\xef\xbd\xb6", "\xe3\x82\xad" => "\xef\xbd\xb7", "\xe3\x82\xaf" => "\xef\xbd\xb8", "\xe3\x82\xb1" => "\xef\xbd\xb9", "\xe3\x82\xb3" => "\xef\xbd\xba", "\xe3\x82\xb5" => "\xef\xbd\xbb", "\xe3\x82\xb7" => "\xef\xbd\xbc", "\xe3\x82\xb9" => "\xef\xbd\xbd", "\xe3\x82\xbb" => "\xef\xbd\xbe", "\xe3\x82\xbd" => "\xef\xbd\xbf", "\xe3\x82\xbf" => "\xef\xbe\x80", "\xe3\x83\x81" => "\xef\xbe\x81", "\xe3\x83\x83" => "\xef\xbd\xaf", "\xe3\x83\x84" => "\xef\xbe\x82", "\xe3\x83\x86" => "\xef\xbe\x83", "\xe3\x83\x88" => "\xef\xbe\x84", "\xe3\x83\x8a" => "\xef\xbe\x85", "\xe3\x83\x8b" => "\xef\xbe\x86", "\xe3\x83\x8c" => "\xef\xbe\x87", "\xe3\x83\x8d" => "\xef\xbe\x88", "\xe3\x83\x8e" => "\xef\xbe\x89", "\xe3\x83\x8f" => "\xef\xbe\x8a", "\xe3\x83\x92" => "\xef\xbe\x8b", "\xe3\x83\x95" => "\xef\xbe\x8c", "\xe3\x83\x98" => "\xef\xbe\x8d", "\xe3\x83\x9b" => "\xef\xbe\x8e", "\xe3\x83\x9e" => "\xef\xbe\x8f", "\xe3\x83\x9f" => "\xef\xbe\x90", "\xe3\x83\xa0" => "\xef\xbe\x91", "\xe3\x83\xa1" => "\xef\xbe\x92", "\xe3\x83\xa2" => "\xef\xbe\x93", "\xe3\x83\xa3" => "\xef\xbd\xac", "\xe3\x83\xa4" => "\xef\xbe\x94", "\xe3\x83\xa5" => "\xef\xbd\xad", "\xe3\x83\xa6" => "\xef\xbe\x95", "\xe3\x83\xa7" => "\xef\xbd\xae", "\xe3\x83\xa8" => "\xef\xbe\x96", "\xe3\x83\xa9" => "\xef\xbe\x97", "\xe3\x83\xaa" => "\xef\xbe\x98", "\xe3\x83\xab" => "\xef\xbe\x99", "\xe3\x83\xac" => "\xef\xbe\x9a", "\xe3\x83\xad" => "\xef\xbe\x9b", "\xe3\x83\xaf" => "\xef\xbe\x9c", "\xe3\x83\xb2" => "\xef\xbd\xa6", "\xe3\x83\xb3" => "\xef\xbe\x9d", ); %_h2zKanaD = ( "\xef\xbd\xb3\xef\xbe\x9e" => "\xe3\x83\xb4", "\xef\xbd\xb6\xef\xbe\x9e" => "\xe3\x82\xac", "\xef\xbd\xb7\xef\xbe\x9e" => "\xe3\x82\xae", "\xef\xbd\xb8\xef\xbe\x9e" => "\xe3\x82\xb0", "\xef\xbd\xb9\xef\xbe\x9e" => "\xe3\x82\xb2", "\xef\xbd\xba\xef\xbe\x9e" => "\xe3\x82\xb4", "\xef\xbd\xbb\xef\xbe\x9e" => "\xe3\x82\xb6", "\xef\xbd\xbc\xef\xbe\x9e" => "\xe3\x82\xb8", "\xef\xbd\xbd\xef\xbe\x9e" => "\xe3\x82\xba", "\xef\xbd\xbe\xef\xbe\x9e" => "\xe3\x82\xbc", "\xef\xbd\xbf\xef\xbe\x9e" => "\xe3\x82\xbe", "\xef\xbe\x80\xef\xbe\x9e" => "\xe3\x83\x80", "\xef\xbe\x81\xef\xbe\x9e" => "\xe3\x83\x82", "\xef\xbe\x82\xef\xbe\x9e" => "\xe3\x83\x85", "\xef\xbe\x83\xef\xbe\x9e" => "\xe3\x83\x87", "\xef\xbe\x84\xef\xbe\x9e" => "\xe3\x83\x89", "\xef\xbe\x8a\xef\xbe\x9e" => "\xe3\x83\x90", "\xef\xbe\x8a\xef\xbe\x9f" => "\xe3\x83\x91", "\xef\xbe\x8b\xef\xbe\x9e" => "\xe3\x83\x93", "\xef\xbe\x8b\xef\xbe\x9f" => "\xe3\x83\x94", "\xef\xbe\x8c\xef\xbe\x9e" => "\xe3\x83\x96", "\xef\xbe\x8c\xef\xbe\x9f" => "\xe3\x83\x97", "\xef\xbe\x8d\xef\xbe\x9e" => "\xe3\x83\x99", "\xef\xbe\x8d\xef\xbe\x9f" => "\xe3\x83\x9a", "\xef\xbe\x8e\xef\xbe\x9e" => "\xe3\x83\x9c", "\xef\xbe\x8e\xef\xbe\x9f" => "\xe3\x83\x9d", ); %_z2hKanaD = ( "\xe3\x82\xac" => "\xef\xbd\xb6\xef\xbe\x9e", "\xe3\x82\xae" => "\xef\xbd\xb7\xef\xbe\x9e", "\xe3\x82\xb0" => "\xef\xbd\xb8\xef\xbe\x9e", "\xe3\x82\xb2" => "\xef\xbd\xb9\xef\xbe\x9e", "\xe3\x82\xb4" => "\xef\xbd\xba\xef\xbe\x9e", "\xe3\x82\xb6" => "\xef\xbd\xbb\xef\xbe\x9e", "\xe3\x82\xb8" => "\xef\xbd\xbc\xef\xbe\x9e", "\xe3\x82\xba" => "\xef\xbd\xbd\xef\xbe\x9e", "\xe3\x82\xbc" => "\xef\xbd\xbe\xef\xbe\x9e", "\xe3\x82\xbe" => "\xef\xbd\xbf\xef\xbe\x9e", "\xe3\x83\x80" => "\xef\xbe\x80\xef\xbe\x9e", "\xe3\x83\x82" => "\xef\xbe\x81\xef\xbe\x9e", "\xe3\x83\x85" => "\xef\xbe\x82\xef\xbe\x9e", "\xe3\x83\x87" => "\xef\xbe\x83\xef\xbe\x9e", "\xe3\x83\x89" => "\xef\xbe\x84\xef\xbe\x9e", "\xe3\x83\x90" => "\xef\xbe\x8a\xef\xbe\x9e", "\xe3\x83\x91" => "\xef\xbe\x8a\xef\xbe\x9f", "\xe3\x83\x93" => "\xef\xbe\x8b\xef\xbe\x9e", "\xe3\x83\x94" => "\xef\xbe\x8b\xef\xbe\x9f", "\xe3\x83\x96" => "\xef\xbe\x8c\xef\xbe\x9e", "\xe3\x83\x97" => "\xef\xbe\x8c\xef\xbe\x9f", "\xe3\x83\x99" => "\xef\xbe\x8d\xef\xbe\x9e", "\xe3\x83\x9a" => "\xef\xbe\x8d\xef\xbe\x9f", "\xe3\x83\x9c" => "\xef\xbe\x8e\xef\xbe\x9e", "\xe3\x83\x9d" => "\xef\xbe\x8e\xef\xbe\x9f", "\xe3\x83\xb4" => "\xef\xbd\xb3\xef\xbe\x9e", ); %_hira2kata = ( "\xe3\x81\x81" => "\xe3\x82\xa1", "\xe3\x81\x82" => "\xe3\x82\xa2", "\xe3\x81\x83" => "\xe3\x82\xa3", "\xe3\x81\x84" => "\xe3\x82\xa4", "\xe3\x81\x85" => "\xe3\x82\xa5", "\xe3\x81\x86" => "\xe3\x82\xa6", "\xe3\x81\x87" => "\xe3\x82\xa7", "\xe3\x81\x88" => "\xe3\x82\xa8", "\xe3\x81\x89" => "\xe3\x82\xa9", "\xe3\x81\x8a" => "\xe3\x82\xaa", "\xe3\x81\x8b" => "\xe3\x82\xab", "\xe3\x81\x8c" => "\xe3\x82\xac", "\xe3\x81\x8d" => "\xe3\x82\xad", "\xe3\x81\x8e" => "\xe3\x82\xae", "\xe3\x81\x8f" => "\xe3\x82\xaf", "\xe3\x81\x90" => "\xe3\x82\xb0", "\xe3\x81\x91" => "\xe3\x82\xb1", "\xe3\x81\x92" => "\xe3\x82\xb2", "\xe3\x81\x93" => "\xe3\x82\xb3", "\xe3\x81\x94" => "\xe3\x82\xb4", "\xe3\x81\x95" => "\xe3\x82\xb5", "\xe3\x81\x96" => "\xe3\x82\xb6", "\xe3\x81\x97" => "\xe3\x82\xb7", "\xe3\x81\x98" => "\xe3\x82\xb8", "\xe3\x81\x99" => "\xe3\x82\xb9", "\xe3\x81\x9a" => "\xe3\x82\xba", "\xe3\x81\x9b" => "\xe3\x82\xbb", "\xe3\x81\x9c" => "\xe3\x82\xbc", "\xe3\x81\x9d" => "\xe3\x82\xbd", "\xe3\x81\x9e" => "\xe3\x82\xbe", "\xe3\x81\x9f" => "\xe3\x82\xbf", "\xe3\x81\xa0" => "\xe3\x83\x80", "\xe3\x81\xa1" => "\xe3\x83\x81", "\xe3\x81\xa2" => "\xe3\x83\x82", "\xe3\x81\xa3" => "\xe3\x83\x83", "\xe3\x81\xa4" => "\xe3\x83\x84", "\xe3\x81\xa5" => "\xe3\x83\x85", "\xe3\x81\xa6" => "\xe3\x83\x86", "\xe3\x81\xa7" => "\xe3\x83\x87", "\xe3\x81\xa8" => "\xe3\x83\x88", "\xe3\x81\xa9" => "\xe3\x83\x89", "\xe3\x81\xaa" => "\xe3\x83\x8a", "\xe3\x81\xab" => "\xe3\x83\x8b", "\xe3\x81\xac" => "\xe3\x83\x8c", "\xe3\x81\xad" => "\xe3\x83\x8d", "\xe3\x81\xae" => "\xe3\x83\x8e", "\xe3\x81\xaf" => "\xe3\x83\x8f", "\xe3\x81\xb0" => "\xe3\x83\x90", "\xe3\x81\xb1" => "\xe3\x83\x91", "\xe3\x81\xb2" => "\xe3\x83\x92", "\xe3\x81\xb3" => "\xe3\x83\x93", "\xe3\x81\xb4" => "\xe3\x83\x94", "\xe3\x81\xb5" => "\xe3\x83\x95", "\xe3\x81\xb6" => "\xe3\x83\x96", "\xe3\x81\xb7" => "\xe3\x83\x97", "\xe3\x81\xb8" => "\xe3\x83\x98", "\xe3\x81\xb9" => "\xe3\x83\x99", "\xe3\x81\xba" => "\xe3\x83\x9a", "\xe3\x81\xbb" => "\xe3\x83\x9b", "\xe3\x81\xbc" => "\xe3\x83\x9c", "\xe3\x81\xbd" => "\xe3\x83\x9d", "\xe3\x81\xbe" => "\xe3\x83\x9e", "\xe3\x81\xbf" => "\xe3\x83\x9f", "\xe3\x82\x80" => "\xe3\x83\xa0", "\xe3\x82\x81" => "\xe3\x83\xa1", "\xe3\x82\x82" => "\xe3\x83\xa2", "\xe3\x82\x83" => "\xe3\x83\xa3", "\xe3\x82\x84" => "\xe3\x83\xa4", "\xe3\x82\x85" => "\xe3\x83\xa5", "\xe3\x82\x86" => "\xe3\x83\xa6", "\xe3\x82\x87" => "\xe3\x83\xa7", "\xe3\x82\x88" => "\xe3\x83\xa8", "\xe3\x82\x89" => "\xe3\x83\xa9", "\xe3\x82\x8a" => "\xe3\x83\xaa", "\xe3\x82\x8b" => "\xe3\x83\xab", "\xe3\x82\x8c" => "\xe3\x83\xac", "\xe3\x82\x8d" => "\xe3\x83\xad", "\xe3\x82\x8e" => "\xe3\x83\xae", "\xe3\x82\x8f" => "\xe3\x83\xaf", "\xe3\x82\x90" => "\xe3\x83\xb0", "\xe3\x82\x91" => "\xe3\x83\xb1", "\xe3\x82\x92" => "\xe3\x83\xb2", "\xe3\x82\x93" => "\xe3\x83\xb3", ); %_kata2hira = ( "\xe3\x82\xa1" => "\xe3\x81\x81", "\xe3\x82\xa2" => "\xe3\x81\x82", "\xe3\x82\xa3" => "\xe3\x81\x83", "\xe3\x82\xa4" => "\xe3\x81\x84", "\xe3\x82\xa5" => "\xe3\x81\x85", "\xe3\x82\xa6" => "\xe3\x81\x86", "\xe3\x82\xa7" => "\xe3\x81\x87", "\xe3\x82\xa8" => "\xe3\x81\x88", "\xe3\x82\xa9" => "\xe3\x81\x89", "\xe3\x82\xaa" => "\xe3\x81\x8a", "\xe3\x82\xab" => "\xe3\x81\x8b", "\xe3\x82\xac" => "\xe3\x81\x8c", "\xe3\x82\xad" => "\xe3\x81\x8d", "\xe3\x82\xae" => "\xe3\x81\x8e", "\xe3\x82\xaf" => "\xe3\x81\x8f", "\xe3\x82\xb0" => "\xe3\x81\x90", "\xe3\x82\xb1" => "\xe3\x81\x91", "\xe3\x82\xb2" => "\xe3\x81\x92", "\xe3\x82\xb3" => "\xe3\x81\x93", "\xe3\x82\xb4" => "\xe3\x81\x94", "\xe3\x82\xb5" => "\xe3\x81\x95", "\xe3\x82\xb6" => "\xe3\x81\x96", "\xe3\x82\xb7" => "\xe3\x81\x97", "\xe3\x82\xb8" => "\xe3\x81\x98", "\xe3\x82\xb9" => "\xe3\x81\x99", "\xe3\x82\xba" => "\xe3\x81\x9a", "\xe3\x82\xbb" => "\xe3\x81\x9b", "\xe3\x82\xbc" => "\xe3\x81\x9c", "\xe3\x82\xbd" => "\xe3\x81\x9d", "\xe3\x82\xbe" => "\xe3\x81\x9e", "\xe3\x82\xbf" => "\xe3\x81\x9f", "\xe3\x83\x80" => "\xe3\x81\xa0", "\xe3\x83\x81" => "\xe3\x81\xa1", "\xe3\x83\x82" => "\xe3\x81\xa2", "\xe3\x83\x83" => "\xe3\x81\xa3", "\xe3\x83\x84" => "\xe3\x81\xa4", "\xe3\x83\x85" => "\xe3\x81\xa5", "\xe3\x83\x86" => "\xe3\x81\xa6", "\xe3\x83\x87" => "\xe3\x81\xa7", "\xe3\x83\x88" => "\xe3\x81\xa8", "\xe3\x83\x89" => "\xe3\x81\xa9", "\xe3\x83\x8a" => "\xe3\x81\xaa", "\xe3\x83\x8b" => "\xe3\x81\xab", "\xe3\x83\x8c" => "\xe3\x81\xac", "\xe3\x83\x8d" => "\xe3\x81\xad", "\xe3\x83\x8e" => "\xe3\x81\xae", "\xe3\x83\x8f" => "\xe3\x81\xaf", "\xe3\x83\x90" => "\xe3\x81\xb0", "\xe3\x83\x91" => "\xe3\x81\xb1", "\xe3\x83\x92" => "\xe3\x81\xb2", "\xe3\x83\x93" => "\xe3\x81\xb3", "\xe3\x83\x94" => "\xe3\x81\xb4", "\xe3\x83\x95" => "\xe3\x81\xb5", "\xe3\x83\x96" => "\xe3\x81\xb6", "\xe3\x83\x97" => "\xe3\x81\xb7", "\xe3\x83\x98" => "\xe3\x81\xb8", "\xe3\x83\x99" => "\xe3\x81\xb9", "\xe3\x83\x9a" => "\xe3\x81\xba", "\xe3\x83\x9b" => "\xe3\x81\xbb", "\xe3\x83\x9c" => "\xe3\x81\xbc", "\xe3\x83\x9d" => "\xe3\x81\xbd", "\xe3\x83\x9e" => "\xe3\x81\xbe", "\xe3\x83\x9f" => "\xe3\x81\xbf", "\xe3\x83\xa0" => "\xe3\x82\x80", "\xe3\x83\xa1" => "\xe3\x82\x81", "\xe3\x83\xa2" => "\xe3\x82\x82", "\xe3\x83\xa3" => "\xe3\x82\x83", "\xe3\x83\xa4" => "\xe3\x82\x84", "\xe3\x83\xa5" => "\xe3\x82\x85", "\xe3\x83\xa6" => "\xe3\x82\x86", "\xe3\x83\xa7" => "\xe3\x82\x87", "\xe3\x83\xa8" => "\xe3\x82\x88", "\xe3\x83\xa9" => "\xe3\x82\x89", "\xe3\x83\xaa" => "\xe3\x82\x8a", "\xe3\x83\xab" => "\xe3\x82\x8b", "\xe3\x83\xac" => "\xe3\x82\x8c", "\xe3\x83\xad" => "\xe3\x82\x8d", "\xe3\x83\xae" => "\xe3\x82\x8e", "\xe3\x83\xaf" => "\xe3\x82\x8f", "\xe3\x83\xb0" => "\xe3\x82\x90", "\xe3\x83\xb1" => "\xe3\x82\x91", "\xe3\x83\xb2" => "\xe3\x82\x92", "\xe3\x83\xb3" => "\xe3\x82\x93", ); } sub jis_jsky { my $this = shift; $this->_s2j($this->_u2sj2($this->{str})); } # utf8 -> jis-au1 sub _u2ja1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($u2s_table)) { $u2s_table = $this->_getFile('jcode/u2s.dat'); } if(!defined($eu2a1s)) { $eu2a1s = $this->_getFile('jcode/emoji2/eu2as.dat'); } my $c1; my $c2; my $c3; my $c4; my $c5; my $c6; my $c; my $ch; $str =~ s/([\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5})|([^\x00-\x7f])/ defined($2) ? '?' : ((length($1) == 1) ? $1 : (length($1) == 2) ? ( ($c1,$c2) = unpack("C2", $1), $ch = (($c1 & 0x1F)<<6)|($c2 & 0x3F), $c = substr($u2s_table, $ch * 2, 2), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 3) ? ( ($c1,$c2,$c3) = unpack("C3", $1), $ch = (($c1 & 0x0F)<<12)|(($c2 & 0x3F)<<6)|($c3 & 0x3F), ( ($ch <= 0x9fff) ? $c = substr($u2s_table, $ch * 2, 2) : ($ch >= 0xf900 and $ch <= 0xffff) ? ( $c = substr($u2s_table, ($ch - 0xf900 + 0xa000) * 2, 2), (($c =~ tr,\0,,d)==2 and $c = "\0\0"), ) : ( $c = '?' ) ), ($c eq "\0\0") ? '?' : $c ) : (length($1) == 4) ? ( ($c1,$c2,$c3,$c4) = unpack("C4", $1), $ch = (($c1 & 0x07)<<18)|(($c2 & 0x3F)<<12)| (($c3 & 0x3f) << 6)|($c4 & 0x3F), ( ($ch >= 0x0fe000 and $ch <= 0x0fffff) ? ( $c = substr($eu2a1s, ($ch - 0x0fe000) * 2, 2), $c =~ tr,\0,,d, ($c eq '') ? '?' : $c ) : '?' ) ) : '?' ) /eg; $this->_s2j($str); } # jis-au1 => utf8 sub _ja2u1 { my $this = shift; my $str = shift; if(!defined($str)) { return ''; } if(!defined($s2u_table)) { $s2u_table = $this->_getFile('jcode/s2u.dat'); } if(!defined($ea2u1s)) { $ea2u1s = $this->_getFile('jcode/emoji2/ea2us.dat'); } $str = $this->_j2s($str); my $l; my $uc; $str =~ s/($RE{SJIS_KANA}|$RE{SJIS_DBCS}|[\x80-\xff])/ $SA2U1{$1} or ($SA2U1{$1} = ( $l = (unpack('n', $1) or unpack('C', $1)), ( ($l >= 0xa1 and $l <= 0xdf) ? ( $uc = substr($s2u_table, ($l - 0xa1) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0x8100 and $l <= 0x9fff) ? ( $uc = substr($s2u_table, ($l - 0x8100 + 0x3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xeb00 and $l <= 0xeeff) ? ( $uc = substr($ea2u1s, ($l - 0xeb00) * 4, 4), $uc =~ tr,\0,,d, $uc ) : ($l >= 0xe000 and $l <= 0xfcff) ? ( $uc = substr($s2u_table, ($l - 0xe000 + 0x1f3f) * 3, 3), $uc =~ tr,\0,,d, $uc ) : ($l < 0x80) ? chr($l) : '?' ) ) )/eg; $str; } # ----------------------------------------------------------------------------- # strcut, strlen # sub strcut { my $this = shift; my $cutlen = shift; if(ref($cutlen)) { die "String->strcut, Param[1] is Ref.\n"; } if($cutlen =~ m/\D/) { die "String->strcut, Param[1] must be NUMERIC.\n"; } my $ch_re = '[\x00-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xf7][\x80-\xbf]{3}|[\xf8-\xfb][\x80-\xbf]{4}|[\xfc-\xfd][\x80-\xbf]{5}'; my $result; my $line = ''; my $linelength = 0; foreach my $c (split(/($ch_re)/, $this->{str})) { next if(length($c) == 0); if($linelength + (length($c) >= 3 ? 2 : 1) > $cutlen) { $line ne '' and push(@$result, $line); $line = ''; $linelength = 0; } $linelength += (length($c) >= 3 ? 2 : 1); $line .= $c; } push(@$result, $line); $result; } sub _utf32be_ucs4 { my $this = shift; my $str = shift; $str; } sub _j2s { my $this = shift; my $str = shift; $str =~ s/($RE{JIS_0208}|$RE{JIS_0212}|$RE{JIS_ASC}|$RE{JIS_KANA})([^\e]*)/ $this->_j2s2($1, $2) /geo; $str; }   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~仒丯亱亇丩侘亊亐儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎凢凘凙凚凜凞凟凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刾剄剅剆則剈剋剎剏剒剓剕剗剘剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剉乚乗乪乫乬乭侕侖乨乧侎亴亶仸亷噦噭侌嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳铒铕铖铗铙铘铛铞铟铠仼仾仺伀佀佁佂佪佄佫伕伖嚁併佸亣嚇佢乤伻伾伩伨佺佽嚀亪佹佷佮亗佭亝亞佱佲伡伣伜伝佦嚈佨嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢劅劒劆劔劇劕劉劖劋劘劊劗劌労劦劙劎劶劮劜劍劧劵劚劏劯劷劤劑劰劸劥仭仩仯仮仴仱仧仦仜仢仠侟仛仚亰亯侓侒侐丂丄丅乂乆乊乑乹乺乻乼乽乿亀亁亂亃仹伂乲乴乣噣噥偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫丣並乀乁傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢丒乕丷丼噴噵噷噮噯噰噲噳噀噄嘸嘽嘺噆噅嘾噇噁噉嘷噈嘼噂噃噡噺噹噸噐噑噊噋噏噓噒噧堦挌幍枩忎嶰忋壓晄梌槧塏妿槨悽櫪媢暩忓椉暲鞮槩拞槪孁槫娵扥庡槬槮槯擳媣擵撫屃朢録槰忔槱壋嬨岊栫洡棎擕姡婽槳槴椆梊憟槶帠擇槹塢屳屲堜榡榠嵄垷槺槻槼朣槾岎堝枓嫓嫕嫗掄椇樀樁樂恖廦恗樇樅樆媤崱夘樄樃暓巈巇懠樈晅愬乄樉樌鞰戙椷埲樋壖嬄拠審樍擟鞱鞳婇鞵樎埳屴婈暁敯媥夛樺揱攲樐敽椸怢鞶巉帡壘捪扐樔埵掅廧嵅桟懱壗鞷樓梋樏樑嶌樒汣樜樠樝壚暪樕樛岏巊姢樢樖鞹椺帢標樞鞸鞻樣樚鞺嫙埶嫚壙汥枡晭岒怤椀曋學懀夆鞥弐鞼樧樮樬樥懎権樭樫曐樦怣枔樰樲廋橂攐昒樻曨壌橁鞿樹橅憅屄攞嗯橃搢樶岕岓樳韀庁樼鞾曧抣樸寫樴樿樷椣橀榒嬩寪鞽韃橆韁橈橌執曃橋橊橎橍掆寬橏韂幟懁掋嬼橑婾橒橔朤寙韄嶱旛橓嵜梑橖橞橕嵚彎孹機嬐橜橝摥憸嫛杔橠韆椈橢橦橣憁橤橧韅橩橨暺媀橫橬壄橪庲橯橮橭樤橰彏橲桪栕橴橳橶橵橷橸堯尦孼廩挍嫝愭岝韇崕橻柶揺帣橺橽搣姇橾韈擖慡檁檂敧岞榋檃嫟暫懘嬶揟寭檅檆撪墌檉嶜檈嵞檊沆檋朻檌檍檏忕幨韉姤檔檒柣檓晊檕檖檘搤檜檚檛檙嶀檝栬椻檞韊惁檟弝檡挏椊搥櫭檢辏嬅檣杴張扂檥撯韋檦檧奙檨嫢撌墯弌敓檪搧恘檭暘愗姞姧檮檰孻檯韌楍弶敾暿檱棙檲檳摓檴惂嶞寯檵巋崗掍檷懃嶍檸檹慜檶檻朥崉檺寱嵻攳檾檼暃忚櫅妱檿檽憂櫁櫀奵寑櫆棲櫂櫇櫄櫃椡韍岟壛楎韎彆搘崊櫊櫋頪椼楯櫍岠櫌奛韏櫎杣捄桬曌櫏栌摦櫐姩柋韐彑櫑曞櫕惃櫒嬑櫓姪孧櫖櫗櫘櫙庂岡栜韑栨擋曪櫚韒櫛櫝櫟櫞櫠壔杒嶛櫡憍彔嫥櫢韓斮櫣櫤櫥櫦旵嬫堛摻櫧廫愮櫩櫨彙屵櫫敿櫬斱懖戩嫤撿扨攷杕櫮愯孴櫯櫰塊報婋韔懄媝棏櫳壍櫲嫧櫴栵韕櫵椥岤尨櫶櫸櫷悀塜墋櫹櫺韖尩櫻嫀嶲櫼枖嵆媦桭憃斀廂廸庢庴彇斁韗櫿塨憄岥屆嬪欃扏扅嫨彚欄欂壜戜幎巎塃姁崋巌欅欆媓奺崌媑捿塂摨柤岪棛揻岦孨欏嬦杋斲欎娷欉權欌欍媧悂暙欋欇屷欈楥曫掓屶崘欐撣欔廃庺欗欕枴欒欛欖欙屇柦欚欜欞韚嶎榓欓欑欝欘韙欥欱欨欬韛欯欩歖嶇奝欦欴堲欳垼昳欰欪欟欫嵠欵堳歂欶欸彛枆歀欿揘歁欽韜塖嵈怬欻搨欼垹歋桞彞歒歑歄懥歅戫歎彜歊栤孾歏歐歍歓歈歚歟歛歕歠慞韝歨岮歗挐歜歔姭婌妳歝歘寲歩歡憆媔嫪歞嬺塩歮歬殽歱歫歯歭巏歰歳歸歶歵扱壝歲歴彟塕歷壾殏忷殅歿殀殈塡慩歺歽姎殎婍殑殌殐暚撚敹殕殔奷殗殜殙殘擷殝殞殠殟殣殦殤殢殥殧殨殩殫殬檇廁巐夞場抍殭崲埻恾殮屌崙殰殯曓殱殶殲殸殹寳墍殺殼殻殾搚毀埑嵼孿抧毃毄毇毈嶁嬒朧毆毉嵖岯韞毐崳韟扲毊捸毑悅毎毘宆毚毜岰奯毞毟韠毠毝毌毢毣韢韡杽忛毥毦毤毨擶堟晆毩忹幏攟婎嶉杧摪寴懲毧毬懧毭毮毱掔姮隉墎曬応揼嶄毺暬椲夠毴慪毸搩揾搫敺捤嵡毲墫揢毶毰恛毻弇嫬毼曟憹捘韥毿杗氀氈韨暛氄毾氁氃崵暻氉抎夡忞氋氊崍氌氒氎氜氂氞氝気巑恜憇氠惡堧攧捹氥氣氫氬氭氱曄氳韮壞氶梉奜櫱廹懡氷栭柌氺戝揤懢晇氻氼墰幐氾埼氿汃墏婏撧曭汋憈汈宊韯杬汅搮汍汌韰韱汏汎韲墱汑彠汓扗汒暠彈搝汙岲汚擛斳栂擠汮媁梔柇洩汢汦韴懨朩搃汧枀韷嵢彣汫巓巒埛屍惄埾汯汱汭塛姯汬柮昉垿堶巔埿垺決汷柡汻汸汵怭汳曍屸沄沇彥汼楰攌沀崶沊晈沋汿柟攠沍昋沎沖沑壟沕幑沒寵沰沝沘拕沗沚沜沞沠婐沨沢沬忟沴捼塪沯沵沶泀沷沺巕況岴泂韸帤懚泃泆巠岶栃婫屒泇妛泈懛泋洝泍泎泏泒泘泙戭塅庣埨憊姰幊岹搯廆姱拡掕埗媂曮幚媞愰幒桮泚媨嵣奞墐彧壠泜梕廻韹庘泝婑撔枾泟泤晉泧姦嬽泦韻姲怮泲嶡壡泭泩泴泬擩炈怰泹韼椌泿洂挒洀悺帥懳庻晻愱幩洃彨洅洆堁懜恞洈摫彫彮洉愲彯韽洊洍栟洏嬆廇洐洑広怟擈恠旜擜嬊洓嫃洔孅撏壆巖洕洜洘孄洖揥懏搄幤憌棜洟洠撛嶳洢洣洤婒洦洨壀韾慫娾洬枽懶妜洯洴娸響洭洰洷洶洸洺摶嫭夈洿浌浄曱曯頀搰浂弒浀悞浐嶈浝浟浕奟浖浥浤浢浛浘浡頁曵頄浬浧浫棐浨頂浗悡浭項嵉浰浱浵浳浲搱浉浾浹浶浺浻浿順頇椾涀浽涁娹涃須涆涄涇涊愳廈弰憙岺嵍岻嫄涋嵎屓涍枻攂涏岼姫扚嬓巗晍斂涐婓涗挓涖涒涘掗悆巘惾懷婣挔涙涚忢朮涥涢涜暆涶杫涬涰枊涭涱敠涳暭涴姳暯擭涷涹岾姴涺尪梒桯婔涼挕峀彲斴彴彉掙曶揦峂晎涽搙嵗屔掚埩弾峃梖涾淁攑淂楑楲淈淃奻淍淐淒淏昣彵淔淓淎淕淗淚淟淛淜淢墑掛淣寶夢擴淥擓曎淧楳淨暰淭槦槸幃擉淯媩挗堷淰暏峅抩掜頉栱尫屖淲淴淾庛頊挘嫮淵旿抏淶鞬淸嫯淺淽淿摉渀渁渂淪淩渃宍旻頋嵤昖挙昷渄彶塭渆渇栶斵渋墲惇渉済宎懸渕渒渏棩屻彊渓搆廬摼減渙渘渜屼渞暅弞渟旝摽挜頌揙渢婮怱昁婖擡渦巙朰朲墳渮頍拤渨夣湯測擮渪渧崥渱渻湁渷搟渾晐渶渽楀巚懹渳媫湀惈墔渹夦渿嫰渼湂湆湒湐湋湊楒湌嫲峆彋湙湅頎湉渵夬湏湑抪崷壎湇湗湕嫳懅妴宐湈湚湞湡怼幓恝湧掝湜湥夨湣湤湠湢屽桰姵墄湦擸埆斶渰湭湲栥湩搲湰忣湱撜榝湬恧湳崨惿恚堃湪湨憏湝嶴懩溁恙憐湺湷湸庝湻満湹廌湼湶桗桖溂溄堄恣湵嬸垽姶恁湽溋溊溑愆溒悫溎溓溈溍溔溕溇帨溌懺峇湴怲溨曠溙溚溛溦溤枬姷溡宒奡溝椂溠堅溣準溞溩宑溗梶桱溭溵憺楓溸溰溬愍溫溳暜摬宔溹溮溼寷壇滈姸滅滆崸滄滀溿滉溾滌夰滎滍挦滖滐滃寽滒滛滙滜滘滝滣滧曡滫滪廭惉変夲慝滬埥愂滭媪滰寔滱愴滲滳媃滵滶滷懻屗栠朳強滸愵缁斷庤嵥滺懪暐戯滽滻滾滼滿暞埖晑斸漀漄彸媄漁漋彺漃攃梷漅漇漌搳漈峈愜漞敳戰憩斺潾書掞枙漐墴拪漜扴漖漝漘漟漛漚攺漑夳漎嫅戱漊漍峉愘彽漙攓嫆奼妵怈漢漨漣対漬嶢崏廍漒帩漦巜漧埪漡挧嫇嫴漥垾嵙怳掟斠漰憓懆嶫漲漵漮曔捇憑曺幪潃潂悩尀漻彿撴擯漹憒庼漿彾漸漽攔漷孈妡潀棭嵦扵漼愙峊悇墕慬漺媎宖捦潁憕潄潈懙潐潉潌昤採潎桲梘姺埇潊潅婗墖憝潏梙潓懝潛潔潑潙漴潕潚斃搵潒潖実嶏愛潡揈懋潝杸潟潠柼悹寕潩嶵潥潤擰懑摮揚潧潨晱攄嶣愶杘奾潱潪梚潵潯潰憖戆潬漗潳潫潻潽揊潿嶤潷媅澀潶澅澃澂澆澊忥澇澐澋澏潗澒澑潣澓澁巟澔澕澗澖澘夵峌曻惌屘澚澞肀晀媬澝澛攕澟嫵澢澠姼嶶撝宧悢澣惍揋晘澤澥澦暥泑惸昸嵵斻斄搇椏澩幬澪埓嬕愃晙澫巃抐巣怴澬曽墬巤澯澭澰椃澮慁澱懓澲婙澵澴澷澸婛擔扷媽巪憗弡埉澺墵澾聿峍澽崺徃淼澼徆柧崹堈愄沓濅矸惎塮砀弔枂嶐徍矶惀鞧濄濁濃泶拫濫濊帪峎濇濈怶濆嶯砗砘濌濋濐濓濍砉夾濎濏斢晛宨濔斫惏徎抭嬇濕濙壣濖濘濗弸抔埫濚砭濛砜挩楋巄曢砝朶濧濝濣濢砹濜濦撥濟濨弻濩梛敇濪濬濭濰嬋塯峏濱濲彂憘砺鞪欀慮慭懼嵟橉寧桳朁暈砻濳嶑捊濴楴朷挬濵婜濶濷栘枹枛杮嶥濹庨杙濻濾濽婘媭濺濼濿悪棝埱嵽懞庅忨瀂搈瀀懇瀁忦栛瀃瀄棃砼瀉峐攖瀆搶澻澿媙攆瀈徏斅瀎旞瀅瀋瀊愅枍椦枃壥巬榞瀍悤瀌瀇屚瀔瀒壦瀏瀖瀞砥砣懫暱瀠旳瀟攼朸姽愼廮捬桵瀙瀘瀜瀗瀡瀕瀓瀝瀐拰桍幠嶒嵏枏奰砩捥撊塰愷惒孖瀤峑姕瀦姅瀬瀩愸妀崻奿嵧瀧寘宩搷硎瀥埬瀨瀪嬎孠砬姾媕瀭嶗枒嶸瀮昈瀼壉瀯灂瀰椑瀸攡灁瀲埐瀴峓瀷瀶瀱瀾徑氹屾棞瀳掤夿崼瀫瀽妬瀻瀿搸婞灠鞨柷灄婝灋硭朹灍灐灔灆扞搹灘灉灕灎怷灙惐灗娀榦灃灓堉灅柛灊怉捙灀灒悮灜姂専灟灇灝灖灈灚灛灲撎灑灩灮捴梜晼灦懭灱慯灣灷灴擁灳撹硗灺灥嬈灨弢攢灪嬌灢灤灡極妝灧灹奣嶅墊炓楶炚硐怸炘炗炐災炨灻炛炍炆炂炃炏隊炋峔捚憚炇炁炄條枈炌炞硇炦炟炲炪炥炤捨憛炢炠炧炴旙烄炵炾炰挃昗炡炩従柾烐為尃墶妦炑硌徔烆烏庽姃扢炿碛烉烎嫶媖烌婡撋烋烍硪烅碓烇碚妧抙烔烒岀烑烜瀢烓烕烖烱烥瀺烣烢烞炶烡烠烮楨烲孂烪烰碇碜敟烳烸烴棑烵炣烺烻塗烾寚師嬘墷梸焀烿焂媆嬙娂焅焄焆壧扸焇娊焋焈焌焍焎巭惓崯晲曕榗帟嵨楌焏焑巰焒焔焛焗杦弣庩巆焜焞怋焝焟焠無焢焣焥焤焧墸抜焨嶦妅焩揳毷婤焪焫曣枅撆焬斾碡旟栄焭焲焮焴焳焷巵柉焸焹婥焺焼焻悈昘塱斆碣掦廯媮斈幀焾娋墭碲擆焽峕抮焿煈煀碥懣媯煉寛婦煇煄煁梹碹捑撟煂煍煋孊壂嵐煃煆杤戲枟煖煗壨暒桘煙帯徖煒煘増嫷煏煔愹攽斿煑朄煓煝磔煚煕朅攇媰揇拲煟煛懽煐塲磙梞煯煭愻煪棇摯煠捗塳峖煣廎煬煫煢煩妶煥攈棳忩愺煷煵昹煰煴塝峗楺奬晜磬梺奀怹煶煾磉徚桹煹煱煻磲椳摀摾礅奤塼熂熆椓梽熎熇熃椧熋磴廼熍熓搼熑熉扺熒熅熌熕堹熈熖怺礤弤暎崿礓煿熐揧礞惔妷嵪徛熁廰宬熀熜弽尭熯熧嫈搉熢熭埈塓黹壏熤應熗熛峘熰礴熪黻熡熩柀熦熫屛徝扻龛熞桸熣熚搾熝熥榩幖枮熱敩燀尮弨熴棴峚燄堨燁熲熻熽梟熷揗熺黼燂熼柵熶帬燑妸熸熾熿戧懾燈燏燌揌郆燉燊熮嫏昚幗崡楻燆郃墘憜敊娍楕枱捫燍燐慟郂燋燅娏寜郚郔愽妰弫郣郖挭郒捵鄈郋郉郙郍郌郘悷郈盱郞郟娎郩郥郪郰揵郤眄郬寖戺郠擹郮郵郲郶郺郱崐擥煼棓郳郹戵郷郕眍鑹郿鄅鄁盹眇郻郼鄃鄀昺鄊鄇鄆鄉撘鄋挄戨眈悾鄌鄎鄍燇鄏撳鄐壩摂奃媱庈嵭眚楩悊墛鄒鄑眢鄕扽鄘鄓鄗鄖揰堊鞦楏鄛塆鄝鄜鄚鄔朆鄠眭鄟眙墜鄤暟鄡柍徟慠從眵眸楖鄪愾鄦鄫墝眦鄩攣鄥鄨徠斚鄬幭慀鄰鄧孎鄭梠鄲辘弉鄳鄴擬鄶鄷睑擱摃鄺鄼椨鄸鄻墠鄵歾鄽憞嶹鄿鄾怌欁酀酂鄮酁睇酄敋唷啖啵啶捾唳啷唰啜庉晝栮喋嗒憉帰喃喱喹曅斉喈攙挮喁夊媿柲柎壊楽杚暔惖喟摿尅啾嵰喑嗖啻嗟喽媇喾喔將斊睃嗪忬喙頏嫸嗷嘟嗉嗑屜嗫嬬慱崫嗔嗦嗬庪撈嫹嗄扠嗝楾攤嗲嗌嗥栆嗳嗍椔預辔嗤挅擫專嗵嗨桺桻嘞墡崠巶嘈嘌嘤廱嗾嘣嘀妉嘭頒嘧嘹噘尯棪嬍墹嬭娺楁嘬噢頓噙壪噗頔嶺捒噍頗頕噔庫頖噜宂斍噌帱頙噻尰媴噤棟領棶戶噫頚頜頛頝噼椩嬚旡攊嚅嚯囝嚓囗岃塴囡悙囔椱頞囹辎囵囿噱囫嵑圄圊棡頟圉圜頠嚆帏娐帲帙帔帑塟酅昛酇姠酈酑酓酕酖酔時酙酘頡酜酛酟酠酧酦崣酫酨娒恟揫酭惗嶻墮酳梡曖酺韺揷桼峛怽抝櫜挰夋酻酼醄醂醁澙奅醀堌敤斎棷醆醃抺悿敥昄醊棯宭醎醈斣醏醓頢堎忯醘醕撾醔婨醝醖醗醜醙旸慳慲媈醞醟醠醤醡塽醰旀醦醨醫怾醬醩幘醥醧昦徢醲醱醳帳嵀摋醶捝醸棢醷憠醾釀釁抯醿醼醹醻醽釄釂釃釅釈釋釐釒釆釔釓釕椕釘釖釗娻桙暼釚釙釛針釡釞釟釠釢釣釤釥帷敪搊幄敀昐幔頣幛揑奆峜幞幡岌嶩岍屺岐岖頦頤頥頧旂岈岘陦岙岑岚嶮岜攗杶塵塿岵岽岢搻惙焁岬柨岫娔斦岱岣峁栚栍捈憡峄弬徣峋峤峒旣娕導崮崃恀柊崂崧崦峥崤崞挱娽拝頩崆崛崴悋撀崽杛嵘崾嵯嵛嵬嵫嵝嵋嵩嵊曀弖椖嵴摰嶂嶙巅豳嶷嶝彳彷徂徇柕徉栴後抦攰嬮抁徕嫺愇徙嵒徜徨尋嵱徵頫搖嵲媘朇攋搗峽衢頬徤頭棸峝尌敗犭頮犴岄犰掫犸奦彡旇塐嶊榪犷狃暽愖狎狍狁妋狴狲帴狷狨猁狯斨狒狩釧釦杹狳堥釩釨徥釪慴釬釫釭徭徼釯釮頯帵楃幮釰孷媉婩巸桽釶釵慶釲釴廽恄釳釱擨徦昜嵳摌釷釸鈎嬛榎慣釹壭掯暉頳頵釺嫐釻釽釾擧釿鈀鈁嬜壯撁廏巹鈂廐壢昩鈃旈慸鈆鈇攭恅鈄拋鈅徧堏婬鈈掱鈉惻柅旴鈊鈋抰椗鈍鈌庬鈏堫鈒鈐壱宮鈑峞崚曚鈓杝鈕愊塶壐埅鈔鈖鈗忰鈘妌鈚寠媶鈛嬻鈜慂撍愞嶓鈝拏憢鈟鈡鈞鈠孉鈢孍媷梣鈤鈥塎鈨姈鈧鈦鈪鈣鈫棫鈬鈭頶汄鈯鈮鈰鈱棾鈲桧復鈳鈴弙摱鈵頷扜頹鈶抂鈷嫞橿抾幈娖鈸鉅鈻媹鈺猗鈹徫鈽鈾揓鈿妢恲晞鉁戞鈼鉀鉂嶚猡昅敜摍嬝猓狻敵鉃拀摏摎嶔舛猞猕猥猬猢猹猝猊鉄曂売獬獍獾獯敁枼嶼猱夥獠獗猸頺獐娗抃慃敔饧敘愡夤斖饨曆抸飧夂饣饩幝撃饷饴饪楿馊馓馍馀馄馑饫櫽馇饬馐庑娙馔馕庀庖庋旚庥楘曤庳庹庠愋庾赓庵廨廒廑饽廛廪膺暷忄栢嬏孒忉暡悎柈忖棻敂慹擲弆埦忡忮忏姛徬忤怄怃忪怆怅忾忭忸惛怙怦怵屝慦怏摐怛怍暢憣峟怩椘怊怿怡恸巺恹宯媻婭鉆栺峠恻鉉栦擺昍弮鉈幯峢巻媺暣鉇慺朼嶕巼捽鉌椵嵶鉍恆鉏徯嵁鉎廔尲慻鉊鉐頼鉋宱鉓鉗寢鉒鉛頽峣棈埡鉘媼鉕鉖摑鉔鉑奊愨對鉝鉚鉜鉙宲懕鉞憥鉫頿鉧鉡鉥庿堐鉠鉨鉬峧栐捲鉢頾鉪鉟抅鉤埢柸鉣嬞旉憤椢弿銕顀鉭慄鉩鉮鉰掲鉳鉯曇娚柹堒鉲楙鉱墢撽鉵鉼鉶鉽鉹敍幦鉻鉸鉾鉷廲朌弅鉺銆銂銅銃銇銁鉦愌斏銄鉿慇宷廕顁怐慤銊銌銍銉銋銀銈銑銐枤孞銏銓銒銖銘嶽銔銙銚鞞銛銡揨銝銜銞銟銠銢銣娛銤銥銦顂銧恪恽悖悚悝悭悃悒悌悻悛惬嵾宺抲敱彁攍旊悱滊惝惆梾惘悴惚梤愠旤愦惴愣愕顃愀孮慉媊慵愎愫憬憔慊塇墺憷懔懵梻廗隳忝悏闩闫闱娿娝闳闵東梼梥榁峫闾幰闼阃帶懴阄峩栒阆阈阊阋阌帹栯阏抆阍阕阒阖惞阗阙暦阚憦丬爿楛汔氵戕挳汜怑汊沣榃沅沐沌沔敚擏榏敡汩徰旾汴汨娞屢巿旍尐朾沩汶峬峮堢嶆攛堓泸抇攚戀泗沭泱泐泷朎層堺泔泠泖摲嫻銭擻帀嫼惼榚柆沲愐媟泺泮泫沱扙擼挴銪銩泓恡晠銬銫峯榬銽銱銲庮銰崢銯銳挵暊態戁銷銸銴銵銶峱銾銺晢枌旼銹銼銻朿銿鋀慥鋁鋃鋇鋄鋂擽鋅鋆壈鋎鋉鋊鋋憻鋍鋌鋏鋐鋑恇夌鋒椪帺廘帄抳鋓鋔塒鋕鋖鋗鋘鋙嫽潹鋚愩鋛幧鋜槷鋝曑娳慍弚晳廙鋞峲鋟斒鋭鋡懬敃尳鋠慏鋢掵鋤鋣鋦鋥鋧鋩鋨娡鋪鋫鋬嵂椙鋮怓墣鋯鋰鋱堭鋲鋳晣幣鋵奌埌鋴鋷攎恈壴朏寍嬟鋶夎姟墤鋻楄戂昪錇壵錅錃鋺鋸鋹庒嬯挆撓塸鋽鋼錂鋾錁顅栁錀壷姖錄錆宻洹洫浍埄洳堬洎洙洌洧錉錈拑戼浈浃洄憪宼塦洇峳憫顆涓涔壸壃涠顇洮浯浠涞涑鋿浔洵娢浏浜浒浼洚敎棄浞渫渑悰顈媏嬠淅壻徱涿嵷損淙曥淇壺屧旽渖浣顉淦湫淞渎摳淝淠朑涫堔渚涮渌攱湟漭姙溧湮溆棊滠顊梩棬挊妺晵溻摕埊溘渥憭溲滟滢擪埁渲溥晿溱湔徲廚帾栔昮溴漕湄姉顋忲溷滂憮滗潆拁潇梪溽奧溏潢柂漤滏溟鞤朒楡漶澍漯幜湎曁枲澉漩潋潴塙漉滹捰漪堻憼暳澌錊斪潼徳幥錌嫾題錍暀潲額湓潸榥摖晸顎錔錚錛錎敄錘錐錒錜錑錕墥撱錖錙錏慐錓嶧恉孫栻桏彃顐錠錞榤錝棔錟錡錢錥錣摗錤斔錗彄錦錫憯錪錋錬慼錧錩錨烶烝錮錭棖岷錯錰錱屨媠錳檤嫊椄嬹錴錵拵錶擑埜夅錻錼錷嶾錸攁錹錺鍅錿鍂錽鍀鍁幹鍃抈寀奱鍆奮鍋鍇鍊敻鍈鍉昰斬鍌扄鍖鍒夐鍐朓鍑鍎鍏鍔鍗鍕鍓鍍抴鍞枿鍜鍝鍘鍚鍛鍙愪榅鍢鍣鍩怚鍥鍨鍠鍟鍫壼鍦濉鍧鍤挶鍡攬濂梈澶澹瀣濡瀹梿灞濞濠瀛灏瀵濮濯寤宕宀宄甯骞奍媋宸澧顓宥搴宓寮寰褰謇蹇鍄迥辶迓迕迮寣迩迤廜峴煡迦弍奨迳塹徴迨峵逅堖昞逄悐逵逍拸逖逦嬡逋逶孶戃遐逯懗逭遑逑遒遨旐遄遘遛屟逡埧遢嵸楐暹遴憰棤遽桾邂邈曗邃嵕棥彘尻徶彖顔棁邋彗惢悶彐咫暋屙屐妼朖孱鞟妃屦羼弪弩鬻屮弼弭屣艴妁璧墻妩嬢妍鍭鍬鍯鍮鍰廝鍱鍲鍳惣梫鍴暍攅鍵鍶尒婯鍷帇擿鍸妎鍹鍻棗鍺恊鍼鍽鍾娤鍿鎀鎁鎂妏鎃鎄鎅夝怗鎆鎇鎈尵掶鎉寁恥鎌摙鎋顕孭鎊戸婰鎍鎎徸實鎐朘愝嫋栿慽鎑顖恌拹徹鎒鎕鎖嵓懤鎔徺昡鎓帉塺鎚寃帋帊榣鎙鎘慒媗榖奩徻顗鎗鎜鎝鎛屩梍帍擣鎠惥抋桿鎣岅惤鎟鎤岆鎡鎢願鎞愢撉扤壽旑媌顙挷鎧鎥択惪娦鎦恴椚榑鎨鎳挸鎲顚鎯鎷鎰鎬掹鎫鎩桜帎鎭鎪顜鎱彅尶戻杁墆堗摚鎵鎴撲鎹鎮鎸鎺尓鎶島幱鎻梬鎾鏁鎿昑鎼嬣鏀鏂鏆鏃鏅鏄顝鏇幆鏉鏈晥鏌寈鏋鏍妗媍憧忳姊岇妫類妞嶿澨妤姒廞妲妯姗妾娅扟娆娈姝摛姣朙姘姹娌娉撠徾娲崑槵娴娑昢娣婵娓婧婀婊杄婕娼婢胬奓掑晧嵿峷昻壿斕婷娧愑媛媲挋栣媾嫫婱嫒攦戄旓揬婺杅夑媸楪捓榙帒嫔懐孚慓擌昽嫱巀帓徿攨尗嫣嫠晩幙搎顟顠嫦嫘峸嫖嫜嬉嬖憽嬗婁嬷嬲孀顡尜孥孳愒幫孑妐孓憱孢驵晪顢婲驷挻墇驸庯悥懌驽驿驺骐骈骀骅骁骊嫍骖愓骘屪骒骓楬挼慔骛骟骜骝梮摜骣骠骢骥鏗纡纣纟骧掻鏎鏒鏏纥鏐鏑鏙鏓愔鏕鏘鏔鏛廟鏚鏜鏝鏠鏟鏞鏢鏡桇鏤鏣鏥鏦鏨鏧恎鏩嬰鏪鏬鏭鏮鏫鏯幵鏰婳孯顤尙鏱擃揮鏲鏵幉鏴鏳寉鏶妑鏸嵹鏷鐀鏺鏼曘鏹鏻鏿鏽婸鏾鐁攜椫廠鐂桝鐄鐃鐇梎鐆妽鐅鐊鐉鐈換鐋鐌鐍崒孌鐎鐏鐐恏鐑帿鐒鐓櫉櫈鐔銗鐕扖怞擾鐖曈捯崬扝塈枠恦寎嬤曉鐗鐙鐘夀擊鐚敆揜鐛弎鐝柪鐬鐟鐠捛戅憲摝鐞媡鐧鐤纾摟拃鐡掽搑鐢鐦悁攪捠惱鐥懍憿鐣埀楢鐨戇廡恑鐪鐩堩鐫昇绁撡悑抶嬾绀梀塣曊夁鐭鐮纭纰摴払堘绂绉辍懟绋墦慿尛梱顧绌揔憳幷绐绛弲绔慗慖堚椛绡旔绫绨绠鈩娨鐜绯绮绱梂撨朚绲幾缍绶绺揁堣峹榊缂顨孲绻绾晹妔梄嫿搒缃缇顪缈顫揂缌缋撗缏廢庌攝拺庰悓缑缒恷缗缙缜棌廣缟缛峺崜巁缣弳缢缡戠岉惲敭廥缤忀缧缥缦缫缪忴缬缭缯斘嵮庍缰缱棦廳栰検缲嬥缳顭揃顬畿姌恓顮缵幺掁睿瞍杢孃睢睥甾邕巛玑睽瞌撦奲瞀珏玮玟玎鑞玢楅屫町瞑瞠珥瞟揝玷珉玳珙瞰顼瞽珑瞵玺墧珂敨珀忁畀峼畋畈杇嬧廵摵鞢慙珧珈珩柫挾珞琊畎慘琪琏珲疃朜詈罡畲畹罟彌畛瑛曒塻昬拻嫎鞩琥罱峾罾盥嶬琦悕悗鐯鐱盍羁忶罴鐰鐲罨嬔昫庎楤琰嶖榐鐴鐳鐵琨鞡撶搕捳鐺钅抌鐶鐷孡鐹蠲尞鐸忂姍鐿嵔憴捜钆奪鐼鐽捔鐻鑀鑆钇鑉鑈揕鑁鑂鑅鑇钋嬀鑊鑄鑃钊鑎鑏鑐鑍鑌忇摠鑋鑔鑒钌鑓鑑戹鑕鑖鑘钍钏娪鑗桒鑣鑙鑜鑚鑛鑝鑟鑠鑡鑤鑢鑥鑧鑦挿栧鑨慚鑩暵鑪奐塠娬钐娫鑬鑭鑮鑯鑰娭妕峿敶鑲鑱鑳墈鑶鑵鑴鑷鑺埮鑸鑼鑻鑾鑽鑿摤钀钁钃钂晫钄钑嶃钖钘杊慾垻懮铇晬铔铏崀铓尷暶铦锜铻锠堾恮彍娮琛攩瑁堿琚捖椝摡铚棨尟梲嬿棽孏戉銨瑜奒悘妘瑕瑙瑗寗嵺忈钕塀椬瑭绗瑷钚璎瑾璜璀璁楆璇璋惽敼悵婂梇夒廤屬璩璨帗璐璞嶨韪瀚櫾悧瓒棧擄塉愥幋暤塤楇棆韫揹廀韬杌恔杓楈璺杈枥杩杞枇杪憵夃杳柖枘枧業钛濸杵钜枨枞杼钣枭枋杷柰钤钫钪惵钭桋惷栉旕柘阹柺栊柩枰妚柙恱枵孋柚柃柝栀姄枳枸柢埰栎柁忊柽媐桠栳栲鎽曏桡桎桢桄桤梃娯栝桕擝桁壒栾桀塁嬁暸捀崰崁弴恵桉桊梐婃斝撢悳椞寊梏梵杍摢塷桴栩昿棅桷梓棂戣妟妠桫婄尠钬婅揯椶钯屭楮棼椟锧锽锳晽镃镈镋镕镠镚镮旘闶怘婹镴镵櫔焃斞堸埞帞朞忺長栞镸梴塧巂镹夓镺镻镽镾閁镼門钴娰閂閃閄閅閆閈閇閊閍閉開閌閎嬂庱閏閐崄钷閑奭攏閒間抷撻閔敐懯墂嬱嬳挀閙嬵夗閘閖閗閕閣閚閛閜閝閟閞弜閠関婻閡憶尡閤懰閥摣閦閫閩閨閪閧閭钸閬閯嬃閮閰閱閳閲閴閶閵崪閷閸奫閹閺悜閻閼閽閾崅钹钺閿闀闁闂闃敮闅旹闆闄闈闇闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝烼榄怫婼夽嵃榀楫枺楸椴榘槌杺榇嫑楧钽榈钼榉埣钿楦暕槎楣楹榛榧榻枎嶭嶘慛铄榫榱铈榭槁岋槔槊槟榕樯嶪戔槭榍槠槿寏槲橥樘埍铉樨樵檎檠樽橛妭榢橹橐樾橄橼檩檐檑昲橘堮檗猷姀樗塚殁獒檫扡枑椮殂殇殄殒殓捁殍數轫殚殛朠柭撐轭轱摷殪殡墾轺轹墪轸轶轳姏轲幇墽崈辁轾轼轷辂辄闐闏闑塋闌闍崝柗闎铋朡闖铊闒闗闔闓寋闘闙闚闕轵闛掃闟闠闞闝闣關闡闢闥闤闧闬闿榟闦戦嶋阇铍阓阘阛阞尣阠阣幁阤阥阦阧阫阨榌阩楉阬椯阭敒阯阷阸阰崓査杻涻焵枦墿阺媜阾陁陃铎崟陊嘁栙戓陎陑陏陒陓陖陗陘陙陚陜陝陞陠陣陥揅屰陫憀陭陮旲陯陰釼尕桦陱陳陹険陻楊陸陼陽陿陾隁隂隀棿隃隄鈙隇砟钔韘韣韤頃砑硖砦睐頑頨頰頱頲頴頸頻顄顏顑顒顛顣顥顦顩罘罹钗钰钲钶铌両铧仈亹亾仌铥乮乯仏亄丆亅丏乛侽侾俀俁係俆俇俈俉俋丗丟亙亖亜丠仐俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅乵乢乶丱丵丮倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸乷乥乸乣亼亽伿丳铤亸锝★舰锝o饯锝ワ溅锝э建锝╋姜锝浆锝疆锝桨锝憋讲锝筹酱锝碉蕉锝凤礁锝癸胶锝伙郊锝斤骄锝匡線锞侊緜锞冿緞锞咃締锞囷緢锞夛緤锞嬶緦锞嶏編锞忥緪锞戯緬锞擄緮锞曪緰锞楋緲锞欙練锞涳緶锞濓緸锞????????????????????????????????????????????????????????????????銆銆併傦紝锛庛兓锛氾紱锛燂紒銈涖倻麓锝篓锛撅浚锛裤兘銉俱倽銈炪冧粷銆呫嗐囥兗鈥曗愶紡锛硷綖鈭ワ綔鈥︹モ樷欌溾濓紙锛夈斻曪蓟锛斤經锝濄堛夈娿嬨屻嶃庛忋愩戯紜锛嵚脳?梅锛濃墵锛滐紴鈮︹墽鈭炩埓鈾傗檧掳鈥测斥剝锟ワ紕锟狅俊锛咃純锛嗭紛锛犅鈽嗏槄鈼嬧棌鈼庘棁鈼嗏枴鈻犫柍鈻测柦鈻尖汇掆啋鈫愨啈鈫撱???????????鈭堚垕鈯嗏妵鈯傗妰鈭埄????????鈭р埁锟⑩噿鈬斺垁鈭???????????鈭犫姤鈱掆垈鈭団墶鈮掆壀鈮垰鈭解垵鈭碘埆鈭???????鈩扳櫙鈾櫔鈥犫÷????鈼??????????????????????????????????????????????????????????????????????????????????锛愶紤锛掞紦锛旓紩锛栵紬锛橈紮???????锛★饥锛o激锛ワ鸡锛э绩锛╋吉锛棘锛籍锛及锛憋疾锛筹即锛碉级锛凤几锛癸己???????锝侊絺锝冿絼锝咃絾锝囷綀锝夛綂锝嬶綄锝嶏綆锝忥綈锝戯綊锝擄綌锝曪綎锝楋綐锝欙綒????銇併亗銇冦亜銇呫亞銇囥亪銇夈亰銇嬨亴銇嶃亷銇忋亹銇戙亽銇撱仈銇曘仏銇椼仒銇欍仛銇涖仠銇濄仦銇熴仩銇°仮銇c仱銇ャ仸銇с仺銇┿仾銇伂銇伄銇伆銇便伈銇炽伌銇点伓銇枫伕銇广伜銇汇伡銇姐伨銇裤個銈併倐銈冦倓銈呫倖銈囥倛銈夈倞銈嬨倢銈嶃値銈忋倫銈戙倰銈??????????????????????????????????????????????????????????????????????????????銈°偄銈c偆銈ャ偊銈с偍銈┿偑銈偓銈偖銈偘銈便偛銈炽偞銈点偠銈枫偢銈广偤銈汇偧銈姐偩銈裤儉銉併儌銉冦儎銉呫儐銉囥儓銉夈儕銉嬨儗銉嶃儙銉忋儛銉戙儝銉撱償銉曘儢銉椼儤銉欍儦銉涖儨銉濄優銉?銉犮儭銉€儯銉ゃ儱銉︺儳銉ㄣ儵銉儷銉儹銉儻銉般儽銉层兂銉淬兊銉????????螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍危韦违桅围唯惟????????伪尾纬未蔚味畏胃喂魏位渭谓尉慰蟺蟻蟽蟿蠀蠁蠂蠄蠅?????????????????????????????????????????????????????????????????????????????????????????????????????????袗袘袙袚袛袝衼袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携???????????????邪斜胁谐写械褢卸蟹懈泄泻谢屑薪?芯锌褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟?????????????鈹鈹傗攲鈹愨敇鈹斺敎鈹敜鈹粹敿鈹佲攦鈹忊敁鈹涒敆鈹b敵鈹敾鈺嬧敔鈹敤鈹封斂鈹濃敯鈹モ敻鈺?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鈶犫憽鈶⑩懀鈶も懃鈶︹懅鈶ㄢ懇鈶懌鈶懎鈶懐鈶扳懕鈶测懗鈪犫叀鈪⑩叄鈪も叆鈪︹収鈪ㄢ叐?銔夈寯銓€崓銓樸導銓冦尪銔戙崡銓嶃對銓c尗銔娿尰銕溿帩銕炪帋銕忋弰銕????????銔?銆濄熲剸銖嶁劇銑ゃ姤銑︺姧銑ㄣ埍銏层埞銔俱嵔銔尖墥鈮♀埆鈭垜鈭氣姤鈭犫垷鈯库埖鈭┾埅??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????浜滃敄濞冮樋鍝鎰涙尐濮堕㈣懙鑼滅⿶鎮彙娓ユ棴钁﹁姦榀垫鍦ф枴鎵卞疀濮愯櫥椋寸耽缍鹃畮鎴栫矡琚峰畨搴垫寜鏆楁闂囬瀺鏉忎互浼婁綅渚濆亯鍥插し濮斿▉灏夋儫鎰忔叞鏄撴鐐虹晱鐣扮Щ缍矾鑳冭悗琛h瑐閬曢伜鍖讳簳浜ュ煙鑲查儊纾竴澹辨孩閫哥ú鑼ㄨ妺榘厑鍗板捊鍝″洜濮诲紩椋叉帆鑳よ敪???????????????????????????????????????????????????????????????????闄㈤櫚闅犻熁鍚嬪彸瀹囩儚缇借總闆ㄥ嵂榈滅涓戠鑷兼甫鍢樺攧娆濊敋榘诲Д鍘╂郸鐡滈枏鍣備簯閬嬮洸鑽忛鍙″柖瀣板奖鏄犳洺鏍勬案娉虫穿鐟涚泩绌庨牬鑻辫瑭犻嫮娑茬柅鐩婇鎮﹁瑏瓒婇柌姒庡幁鍐?鍦掑牥濂勫寤舵ㄦ帺鎻存部婕旂値鐒旂厵鐕曠尶绺佽壎鑻戣枟閬犻墰榇涘々鏂兼睔鐢ュ嚬澶ゥ寰蹇滄娂鏃烘í娆ф鐜嬬縼瑗栭船榇庨粍宀℃矕鑽诲剟灞嬫喍鑷嗘《鐗′箼淇哄嵏鎭╂俯绌忛煶涓嬪寲浠綍浼戒尽浣冲姞鍙槈澶忓珌瀹跺绉戞殗鏋滄灦姝屾渤鐏弬绂嶇绋肩畤鑺辫嫑鑼勮嵎鑿彄铦﹁鍢╄波杩﹂亷闇炶殜淇勫敞鎴戠墮鐢昏嚗鑺借浘璩闆呴椐曚粙浼氳В鍥炲澹婂换蹇倲鎭㈡噽鎴掓嫄鏀???????????????????????????????????????????????????????????????????榄佹櫐姊版捣鐏扮晫鐨嗙档鑺ヨ煿闁嬮殠璨濆嚤鍔惧鍜冲宕栨叏姒傛动纰嶈搵琛楄┎閹ч娴Θ铔欏灒鏌胯泿閳庡妰鍤囧悇寤撴嫛鎾规牸鏍告鐛茬⒑绌瑙掕但杓冮儹闁i殧闈╁宀虫ソ椤嶉鎺涚瑺妯?姗挎⒍榘嶆綗鍓插枬鎭版嫭娲绘竾婊戣憶瑜愯絼涓旈肮鍙舵妯洪瀯鏍厹绔冭挷閲滈帉鍣涢川鏍㈣寘钀辩播鍒堣媴鐡︿咕渚冨啝瀵掑垔鍕樺嫥宸诲枤鍫Е瀹屽畼瀵涘共骞规偅鎰熸叄鎲炬彌鏁㈡煈妗撴:娆炬瓝姹楁饥婢楁絽鐠扮敇鐩g湅绔跨绨$珐缂剁堪鑲濊墻鑾炶Τ璜岃搏閭勯憫闁撻枒闁㈤櫏闊撻え鑸樹父鍚哺宸岀帺鐧岀溂宀╃揩璐嬮泚闋戦椤樹紒浼庡嵄鍠滃櫒鍩哄瀣夊瘎宀愬笇骞惧繉鎻満鏃楁棦鏈熸妫???????????????????????????????????????????????????????????????????姗熷赴姣呮皸姹界暱绁堝绋绱寰借瑷樿泊璧疯粚杓濋"楱庨浜鍋藉剙濡撳疁鎴妧鎿鐘犵枒绁囩京锜昏璀版幀鑿婇灎鍚夊悆鍠姗樿┌鐮ф澋榛嶅嵈瀹㈣剼铏愰嗕笜涔呬粐浼戝強鍚稿寮撴ユ晳?鏈芥眰姹叉常鐏哥悆绌剁绗堢礆绯剧郸鏃х墰鍘诲眳宸ㄦ嫆鎷犳寵娓犺櫄瑷辫窛閶告紒绂﹂瓪浜ㄤ韩浜緵渚犲儜鍏囩鍏卞嚩鍗斿尅鍗垮彨鍠宄″挤褰婃亹鎭専鏁欐⿱娉佺媯鐙煰鑳歌剠鑸堣晭閮烽彙闊块椹氫话鍑濆碍鏆佹キ灞鏇叉サ鐜夋绮佸儏鍕ゅ潎宸鹃對鏂ゆ娆界惔绂佺绛嬬穵鑺硅弻琛胯璎硅繎閲戝悷閵涔濆跺彞鍖虹嫍鐜栫煩鑻﹁函椐嗛椐掑叿鎰氳櫈鍠扮┖鍋跺瘬閬囬殔涓叉珱閲у睉灞???????????????????????????????????????????????????????????????????鎺樼獰娌撻澊杞$鐔婇殘绮傛牀绻版閸嫴鍚涜柅瑷撶兢杌嶉儭鍗﹁绁佷總鍌惧垜鍏勫晸鍦彧鍨嬪褰㈠緞鎭垫叾鎱ф啯鎺叉惡鏁櫙妗傛笓鐣︾ń绯荤祵缍欑箣缃寧鑽婅泹瑷堣璀﹁唤闋氶稄鑺歌繋榀?鍔囨垷鎾冩縺闅欐鍌戞瑺姹烘綌绌寸祼琛瑷f湀浠跺瑰﹀仴鍏煎埜鍓e枾鍦忓爡瀚屽缓鎲叉嚫鎷虫嵅妞滄ī鐗界姮鐚爺纭倒鐪岃偐瑕嬭瑱璩㈣粧閬i嵉闄洪楱撻垢鍏冨師鍘冲够寮︽笡婧愮巹鐝剧祪鑸疯█璜洪檺涔庡嬪彜鍛煎浐濮戝宸卞韩寮ф埜鏁呮灟婀栫嫄绯婅⒋鑲¤儭鑿拌檸瑾囪法閳烽泧椤ч紦浜斾簰浼嶅崍鍛夊惥濞緦寰℃偀姊ф獛鐟氱瑾炶璀烽啇涔為瘔浜や郊渚欏栧厜鍏姛鍔瑰嬀鍘氬彛鍚???????????????????????????????????????????????????????????????????鍚庡枆鍧戝灑濂藉瓟瀛濆畯宸ュ阀宸峰垢搴冨簹搴峰紭鎭掓厡鎶楁嫎鎺ф敾鏄傛檭鏇存澀鏍℃妲嬫睙娲旦娓簼鐢茬殗纭ǹ绯犵磪绱樼禐缍辫曡冭偗鑲辫厰鑶忚埅鑽掕琛¤瑳璨㈣臣閮婇叺閴辩牽閶奸枻闄?闋呴楂橀椿鍓涘姭鍙峰悎澹曟嫹婵犺豹杞熼汗鍏嬪埢鍛婂浗绌閰烽禒榛掔崉婕夎叞鐢戝拷鎯氶鐙涜炯姝ら爟浠婂洶鍧ゅ⒕濠氭仺鎳囨槒鏄嗘牴姊辨贩鐥曠春鑹瓊浜涗綈鍙夊攩宓乏宸熁娌欑懗鐮傝⿶閹栬鍧愬骇鎸偟鍌啀鏈鍝夊濡诲褰╂墠鎺℃牻姝虫笀鐏介噰鐘鐮曠牔绁枎绱拌彍瑁佽級闅涘墹鍦ㄦ潗缃病鍐村潅闃牶姒婅偞鍜插磶鍩肩榉轰綔鍓婂拫鎼炬槰鏈旀煹绐勭瓥绱㈤尟妗滈绗瑰寵鍐婂埛???????????????????????????????????????????????????????????????????瀵熸嫸鎾摝鏈钖╅洃鐨愰瘱鎹岄寙楫毧鏅掍笁鍌樺弬灞辨儴鎾掓暎妗熺嚘鐝婄敚绠楃簜铓曡畠璩涢吀椁愭柆鏆畫浠曚粩浼轰娇鍒哄徃鍙插棧鍥涘+濮嬪濮垮瓙灞嶅競甯織鎬濇寚鏀瓬鏂柦鏃ㄦ灊姝?姝绘皬鐛呯绉佺掣绱欑传鑲㈣剛鑷宠瑭炶┅瑭﹁獙璜硣璩滈泴椋兼浜嬩技渚嶅厫瀛楀鎱堟寔鏅傛婊嬫不鐖剧捊鐥旂绀鸿岃宠嚜钂旇緸姹愰箍寮忚瓨榇杌稿畭闆竷鍙卞煼澶卞珘瀹ゆ倝婀挎紗鐤捐唱瀹熻攢绡犲伈鏌磋姖灞¤晩绺炶垘鍐欏皠鎹ㄨ郸鏂滅叜绀剧礂鑰呰瑵杌婇伄铔囬偑鍊熷嫼灏烘潛鐏肩埖閰岄噲閷嫢瀵傚急鎯逛富鍙栧畧鎵嬫湵娈婄嫨鐝犵ó鑵叮閰掗鍎掑彈鍛鎺堟ü缍渶鍥氬弾鍛???????????????????????????????????????????????????????????????????瀹楀氨宸炰慨鎰佹嬀娲茬绉嬬祩绻嶇繏鑷垷钂愯瑗茶異韫磋集閫遍厠閰泦閱滀粈浣忓厖鍗佸緭鎴庢煍姹佹笅鐛g甫閲嶉妰鍙斿瀹挎窇绁濈府绮涘【鐔熷嚭琛撹堪淇婂郴鏄ョ灛绔h垳椐垮噯寰棳妤畨娣?婧栨饯鐩剧磾宸¢伒閱囬爢鍑﹀垵鎵鏆戞洐娓氬憾绶掔讲鏇歌柉钘疯鍔╁彊濂冲簭寰愭仌閶ら櫎鍌峰劅鍕濆尃鍗囧彫鍝ㄥ晢鍞卞槜濂ㄥ濞煎灏嗗皬灏戝皻搴勫簥寤犲桨鎵挎妱鎷涙帉鎹锋槆鏄屾槶鏅舵澗姊㈡妯垫布娑堟笁婀樼劶鐒︾収鐥囩渷纭濈绁ョО绔犵瑧绮х垂鑲栬彇钂嬭晧琛濊3瑷熻瑭旇┏璞¤碁閱ら墻閸鹃悩闅滈灅涓婁笀涓炰箺鍐楀壈鍩庡牬澹屽甯告儏鎿炬潯鏉栨祫鐘剁暢绌h捀璀查喐閷犲槺鍩撮>???????????????????????????????????????????????????????????????????鎷娈栫嚟绻旇伔鑹茶Е椋熻潟杈卞盎浼镐俊渚靛攪濞犲瘽瀵╁績鎱庢尟鏂版檵妫娴告繁鐢崇柟鐪熺绉︾闯鑷h姱钖Κ瑷鸿韩杈涢查嚌闇囦汉浠佸垉濉靛,灏嬬敋灏借厧瑷婅繀闄i澀绗ヨ珡闋堥參鍥冲帹?閫楀惞鍨傚弗鎺ㄦ按鐐婄潯绮嬬繝琛伴亗閰旈寪閷橀殢鐟為珓宕囧旦鏁版灑瓒ㄩ洓鎹潐妞欒弲闋楅泙瑁炬緞鎽哄涓栫暆鏄噭鍒跺嫝濮撳緛鎬ф垚鏀挎暣鏄熸櫞妫叉爾姝f竻鐗茬敓鐩涚簿鑱栧0瑁借タ瑾犺獡璜嬮濋啋闈掗潤鏂夌◣鑴嗛毣甯儨鎴氭枼鏄旀瀽鐭崇⿳绫嶇妇鑴婅铂璧よ贰韫熺ⅸ鍒囨嫏鎺ユ憘鎶樿ō绐冪瘈瑾洩绲惰垖铦変粰鍏堝崈鍗犲灏傚皷宸濇垿鎵囨挵鏍撴牬娉夋祬娲楁煋娼滅厧鐓芥棆绌跨绶???????????????????????????????????????????????????????????????????绻婄鲸鑵鸿垱鑸硅枽瑭硯璺甸伕閬烽姯閵戦杻楫墠鍠勬几鐒跺叏绂呯箷鑶崇硯鍣屽宀ㄦ帾鏇炬浗妤氱嫏鐤忕枎绀庣绉熺矖绱犵祫铇囪ù闃婚仭榧犲儳鍓靛弻鍙㈠夊柂澹鐖藉畫灞ゅ対鎯f兂鎹滄巸鎸挎幓?鎿嶆棭鏇瑰罚妲嶆Ы婕曠嚗浜夌棭鐩哥獡绯熺窂缍滆仭鑽夎崢钁捈钘昏璧伴侀伃閹楅湝楱掑儚澧楁啂鑷撹數璐堥犱績鍋村墖鍗虫伅鎹夋潫娓冻閫熶織灞炶硦鏃忕稓鍗掕鍏舵弮瀛樺灏婃悕鏉戦仠浠栧澶卑瑭戝斁鍫曞Ε鎯版墦鏌佽埖妤曢檧椐勯è浣撳爢瀵捐愬脖甯緟鎬犳厠鎴存浛娉版粸鑳庤吙鑻旇璨搁閫殜榛涢瘺浠e彴澶х閱嶉榉规粷鐎у崜鍟勫畢鎵樻姙鎷撴并婵悽瑷楅惛婵佽鑼稿嚙铔稿彧???????????????????????????????????????????????????????????????????鍙╀絾閬旇景濂劚宸界杈挎璋风嫺楸堟ń瑾颁腹鍗樺槅鍧︽媴鎺㈡棪姝庢贰婀涚偔鐭绠痘鑰借儐铔嬭獣閸涘洠澹囧季鏂殩妾娈电敺璜囧ょ煡鍦板紱鎭ユ櫤姹犵棿绋氱疆鑷磋湗閬呴Τ绡夌暅绔圭瓚钃?閫愮З绐掕尪瀚$潃涓徊瀹欏繝鎶芥樇鏌辨敞铏》瑷婚厧閶抽妯楃︾尓鑻ц憲璨竵鍏嗗噵鍠嬪甯栧赋搴佸紨寮靛将寰存嚥鎸戞殺鏈濇疆鐗掔敽鐪鸿伌鑴硅吀铦惰璜滆秴璺抽姎闀烽爞槌ュ媴鎹楃洿鏈曟矆鐝嶈硟閹櫝娲ュ妞庢杩介帤鐥涢氬鏍傛幋妲讳絻婕煒杈昏敠缍撮崝妞挎桨鍧7瀣船鐖悐閲i洞浜綆鍋滃伒鍓冭矠鍛堝牑瀹氬笣搴曞涵寤峰紵鎮屾姷鎸烘彁姊眬纰囩绋嬬窢鑹囪▊璜﹁箘閫???????????????????????????????????????????????????????????????????閭搁劖閲橀紟娉ユ憳鎿㈡暤婊寸殑绗涢仼閺戞汉鍝插竟鎾よ綅杩墑鍏稿~澶╁睍搴楁坊绾忕敎璨艰虎椤涚偣浼濇婢辩敯闆诲厧鍚愬牭濉楀Μ灞犲緬鏂楁潨娓$櫥鑿熻抄閫旈兘閸嶇牓鐮哄姫搴﹀湡濂存掑掑厷鍐?鍑嶅垁鍞愬濉樺瀹曞扯宥嬫偧鎶曟惌鏉辨姊兼鐩楁窐婀稕鐏噲褰撶棙绁风瓑绛旂瓛绯栫当鍒拌懀钑╄棨瑷庤瑒璞嗚笍閫冮忛悪闄堕牠楱伴棙鍍嶅嫊鍚屽爞灏庢啩鎾炴礊鐬崇鑳磋悇閬撻妳宄犻磭鍖垮緱寰虫稖鐗圭潱绂跨姣掔嫭瑾爟姗″嚫绐佹ご灞婇扯鑻瘏閰夌炲櫢灞儑鏁︽矊璞氶亖闋撳憫鏇囬垗濂堥偅鍐呬箥鍑枡璎庣仒鎹洪崑妤㈤Υ绺勭暦鍗楁杌熼洠姹濅簩灏煎紣杩╁寕璩戣倝铏瑰豢鏃ヤ钩鍏???????????????????????????????????????????????????????????????????濡傚翱闊换濡婂繊瑾嶆俊绂扮ア瀵ц懕鐚啽骞村康鎹绘挌鐕冪矘涔冨患涔嬪煖鍤㈡偐婵冪磵鑳借劤鑶胯静瑕楄殼宸存妸鎾鏉锋尝娲剧惗鐮村﹩缃佃姯棣砍寤冩嫕鎺掓晽鏉泝鐗岃儗鑲鸿缉閰嶅嶅煿濯掓?妤崇叅鐙借卜澹茶碃闄欒澘绉ょ煣钀╀集鍓ュ崥鎷嶆煆娉婄櫧绠旂矔鑸惰杽杩洕婕犵垎绺涜帿椐侀害鍑界纭茬鑲囩瓐娅ㄥ埂鑲岀晳鐣犲叓閴㈡簩鐧洪啑楂紣缃版姕绛忛枼槌╁櫤濉欒洡闅间即鍒ゅ崐鍙嶅彌甯嗘惉鏂戞澘姘炬睅鐗堢姱鐝晹绻佽埇钘╄博绡勯噯鐓╅爳椋尳鏅╃暘鐩ょ钑冭洰鍖崙鍚﹀搴囧郊鎮叉墘鎵规姭鏂愭瘮娉岀柌鐨绉樼穻缃疯偉琚璨婚伩闈為妯嬬案鍌欏熬寰瀲姣樼惖鐪夌編???????????????????????????????????????????????????????????????????榧绘煀绋楀尮鐤嬮褰﹁啙鑿辫倶寮煎繀鐣㈢瓎閫兼¨濮獩绱愮櫨璎康褰姘锋紓鐡㈢エ琛ㄨ⿻璞瑰粺鎻忕梾绉掕嫍閷ㄩ嫴钂滆洯榘搧褰枌娴滅曡钵璩撻牷鏁忕摱涓嶄粯鍩犲か濠﹀瘜鍐ㄥ竷搴滄栨壎鏁?鏂ф櫘娴埗绗﹁厫鑶氳姍璀滆矤璩﹁荡闃滈檮渚挮姝﹁垶钁¤暘閮ㄥ皝妤撻ⅷ钁鸿晽浼忓壇寰╁箙鏈嶇鑵硅瑕嗘返寮楁墪娌镐粡鐗╅畳鍒嗗惢鍣村⒊鎲ゆ壆鐒氬ギ绮夌碁绱涢洶鏂囪仦涓欎降鍏靛骞e钩寮婃焺涓﹁斀闁夐櫅绫抽爜鍍诲鐧栫ⅶ鍒ョ灔钄戠畣鍋忓鐗囩瘒绶ㄨ竞杩旈亶渚垮媺濞╁紒闉繚鑸楅嫪鍦冩崟姝╃敨瑁滆紨绌傚嫙澧撴厱鎴婃毊姣嶇翱鑿╁d扛鍖呭憜鍫卞瀹濆嘲宄穿搴栨姳鎹ф斁鏂规湅???????????????????????????????????????????????????????????????????娉曟场鐑圭牪绺優鑺宠悓钃渹瑜掕í璞婇偊閶掗=槌抽惮涔忎骸鍌嶅墫鍧婂Θ甯藉繕蹇欐埧鏆存湜鏌愭鍐掔础鑲啫璎璨岃部閴鹃槻鍚犻牞鍖楀儠鍗滃ⅷ鎾叉湸鐗х潶绌嗛嚘鍕冩病娈嗗爛骞屽鏈炕鍑$泦?鎽╃(榄旈夯鍩嬪鏄ф灇姣庡摡妲欏箷鑶滄灂楫熅楸掓浜︿浚鍙堟姽鏈搏杩勪经绻嚎涓囨參婧婕敁鍛虫湭榄呭烦绠曞铂瀵嗚湝婀婅搼绋旇剤濡欑矋姘戠湢鍕欏あ鐒$墴鐭涢湩榈℃濠垮鍐ュ悕鍛芥槑鐩熻糠閵橀炒濮墲婊呭厤妫夌犊绶潰楹烘懜妯¤寕濡勫瓱姣涚寷鐩茬恫鑰楄挋鍎叉湪榛欑洰鏉㈠嬁椁呭挨鎴荤本璨板晱鎮剁磱闁鍖佷篃鍐跺鐖鸿堕噹寮ョ煝鍘勫焦绱勮柆瑷宠簫闈栨煶钖憮鎰夋剤娌圭檼???????????????????????????????????????????????????????????????????璜几鍞綉鍎媷鍙嬪骞芥偁鎲傛彇鏈夋煔婀ф秾鐚剁尫鐢辩瑁曡獦閬婇倯閮甸泟铻嶅浜堜綑涓庤獕杓块爯鍌辜濡栧搴告彋鎻烘搧鏇滄妲樻磱婧剁啍鐢ㄧ缇婅钁夎搲瑕佽韪婇仴闄介鎱炬姂娆?娌冩荡缈岀考娣缇呰灪瑁告潵鑾遍牸闆锋礇绲¤惤閰贡鍗靛祼娆勬揩钘嶈槶瑕у埄鍚忓饱鏉庢ⅷ鐞嗙拑鐥㈣瑁¢噷闆㈤櫢寰嬬巼绔嬭憥鎺犵暐鍔夋祦婧滅悏鐣欑~绮掗殕绔滈緧渚舵叜鏃呰櫆浜嗕寒鍍氫浮鍑屽鏂欐娑肩専鐧傜灜绋滅厂鑹珤閬奸噺闄甸牁鍔涚窇鍊帢鏋楁穻鐕愮惓鑷ㄨ吉闅i睏楹熺憼濉佹稒绱浠や级渚嬪喎鍔卞逗鎬滅幉绀艰嫇閳撮毞闆堕湂楹楅舰鏆︽鍒楀姡鐑堣寤夋亱鎲愭迹鐓夌熬绶磋伅???????????????????????????????????????????????????????????????????钃i尙鍛傞娅撶倝璩傝矾闇插姶濠佸粖寮勬湕妤兼娴紡鐗㈢嫾绡佽伨铦嬮儙鍏簱绂勮倠閷茶珫鍊拰瑭辨璩勮剣鎯戞灎榉蹭簷浜橀皭瑭梺钑ㄦ婀剧鑵????????????????????????????????????????????寮屼笎涓曚釜涓变付涓间缚涔備箹涔樹簜浜呰鲍浜婅垝寮嶄簬浜炰簾浜犱孩浜颁撼浜朵粠浠嶄粍浠嗕粋浠椾粸浠粺浠蜂級浣氫及浣涗綕浣椾絿浣朵緢渚忎緲浣讳僵浣颁緫浣締渚栧剺淇斾繜淇庝繕淇涗繎淇氫繍淇や骏鍊氬ㄥ斿ュ呬紲淇跺″╁烤淇戝嗗亙鍋囨渻鍋曞亹鍋堝仛鍋栧伂鍋稿個鍌氬倕鍌村偛???????????????????????????????????????????????????????????????????鍍夊儕鍌冲儌鍍栧優鍍ュ儹鍍e儺鍍瑰兊鍎夊剚鍎傚剸鍎曞剶鍎氬劇鍎哄劮鍎煎劵鍎垮厐鍏掑厡鍏斿參绔稿叐鍏叜鍐鍐傚洏鍐屽唹鍐忓啈鍐撳啎鍐栧啢鍐﹀啟鍐╁啰鍐喅鍐卞啿鍐板喌鍐藉噮鍑夊嚊鍑犺檿鍑╁嚟?鍑板嚨鍑惧垊鍒嬪垟鍒庡埀鍒埉鍒冲埞鍓忓墑鍓嬪墝鍓炲墧鍓壌鍓╁壋鍓垮壗鍔嶅姅鍔掑壉鍔堝姂杈ㄨ晶鍔姯鍔煎姷鍕佸媿鍕楀嫗鍕e嫤椋嫚鍕冲嫷鍕稿嫻鍖嗗寛鐢稿實鍖愬審鍖曞寶鍖e尟鍖卞尦鍖稿崁鍗嗗崊涓楀崏鍗嶅嚃鍗炲崺鍗鍗诲嵎鍘傚帠鍘犲帵鍘ュ幃鍘板幎鍙冪皰闆欏彑鏇肩嚠鍙彣鍙徍鍚佸惤鍛鍚惌鍚煎惍鍚跺惄鍚濆憥鍜忓懙鍜庡憻鍛卞懛鍛板拻鍛诲拃鍛跺拕鍜愬拞鍝囧挗鍜稿挜鍜搫鍝堝挩???????????????????????????????????????????????????????????????????鍜搨鍜ゅ捑鍜煎摌鍝ュ摝鍞忓敂鍝藉摦鍝摵鍝㈠敼鍟鍟e晫鍞暅鍟呭晼鍟楀敻鍞冲暆鍠欏杸鍜枈鍠熷暬鍟惧枠鍠炲柈鍟煎杻鍠╁枃鍠ㄥ棜鍡呭棢鍡勫棞鍡ゅ棓鍢斿椃鍢栧椌鍡藉槢鍡瑰檸鍣愮嚐鍢村樁鍢插樃?鍣櫎鍢櫖鍣殕鍤鍤婂殸鍤斿殢鍤ュ毊鍤跺毚鍥傚毤鍥佸泝鍥鍥堝泿鍥戝洆鍥楀洰鍥瑰渶鍥垮渼鍦夊湀鍦嬪湇鍦撳湗鍦栧棁鍦滃湨鍦峰湼鍧庡溁鍧鍧忓潻鍩鍨堝潯鍧垮瀴鍨撳灎鍨冲灓鍨灠鍩冨焼鍩斿煉鍩撳爦鍩栧煟鍫嬪牂鍫濆〔鍫″、濉嬪“姣濉掑牻濉瑰澧瑰澧⒑澹炲⒒澧稿澹呭澹戝澹欏澹ュ澹ゅ澹:澹瑰;澹煎=澶傚澶愬姊﹀ぅ澶き澶插じ澶剧珤濂曞濂庡濂樺ア濂犲ェ濂ォ???????????????????????????????????????????????????????????????????濂稿濡濅綖渚Γ濡插濮ㄥ濡嶅濮氬ē濞熷☉濞滃▔濞氬﹢濠〾濞靛ǘ濠㈠┆濯氬濯惧珛瀚傚瀚e珬瀚﹀瀚栧瀚诲瑢瀣嬪瑬瀣插珢瀣瀣惧瓋瀛呭瓈瀛戝瓡瀛氬瓫瀛ュ瀛板瀛靛鏂堝瀹?瀹冨瀹稿瘍瀵囧瘔瀵斿瘣瀵ゅ瀵㈠癁瀵ュ瀵板瀵冲皡灏囧皥灏嶅皳灏犲阿灏ㄥ案灏瑰眮灞嗗睅灞撳睈灞忓灞碑涔㈠倍灞瑰矊宀戝矓濡涘搏宀诲捕宀煎卜宄呭簿宄囧硻宄╁辰宄哄抄宥屽唱宕嬪磿宕楀禍宕熷礇宕戝磾宕㈠礆宕欏礃宓屽祾宓庡祴宓党宓跺秶宥勫秱宥㈠稘宥懂宥藉稅宥峰都宸夊穽宸撳窉宸栧窙宸凡宸靛笅甯氬笝甯戝笡甯跺阜骞勫箖骞骞庡箺骞斿篃骞㈠工骞囧沟骞跺购楹煎箍搴犲粊寤傚粓寤愬粡???????????????????????????????????????????????????????????????????寤栧唬寤濆粴寤涘虎寤″花寤╁滑寤卞怀寤板淮寤稿痪寮冨級褰濆綔寮嬪紤寮栧缉寮几褰佸綀褰屽綆寮綉褰栧綏褰欏健褰匠褰峰緝寰傚娇寰婂緢寰戝緡寰炲緳寰樺緺寰ㄥ经寰煎繓蹇诲郡蹇稿勘蹇濇偝蹇挎℃仩?鎬欐愭╂庢辨涙曟︽忔烘仛鎭佹仾鎭锋仧鎭婃亞鎭嶆仯鎭冩仱鎭傛伂鎭仚鎮佹倣鎯ф們鎮氭倓鎮涙倴鎮楁倰鎮ф倠鎯℃偢鎯犳儞鎮村堪鎮芥儐鎮垫儤鎱嶆剷鎰嗘兌鎯锋剙鎯存兒鎰冩劇鎯绘儽鎰嶆剮鎱囨劸鎰ㄦ劎鎱婃効鎰兼劕鎰存劷鎱傛厔鎱虫叿鎱樻厵鎱氭叓鎱存叝鎱ユ叡鎱熸厺鎱撴叺鎲欐問鎲囨啲鎲旀啔鎲婃啈鎲啴鎳屾噴鎳夋嚪鎳堟噧鎳嗘喓鎳嬬焦鎳嶆嚘鎳f嚩鎳烘嚧鎳挎嚱鎳兼嚲鎴鎴堟垑鎴嶆垖鎴旀垱???????????????????????????????????????????????????????????????????鎴炴垺鎴埉鎴版埐鎴虫墎鎵庢墳鎵f墰鎵犳墾鎵兼妭鎶夋壘鎶掓姄鎶栨嫈鎶冩姅鎷楁嫅鎶绘嫃鎷挎媶鎿旀媹鎷滄媽鎷婃媯鎷囨姏鎷夋寣鎷嫳鎸ф寕鎸堟嫰鎷垫崘鎸炬崓鎼滄崗鎺栨帋鎺鎺嵍鎺f帍鎺夋師鎺垫崼?鎹╂幘鎻╂弨鎻嗘彛鎻夋彃鎻舵弰鎼栨惔鎼嗘悡鎼︽惗鏀濇悧鎼ㄦ悘鎽ф懐鎽舵憥鏀挄鎾撴挜鎾╂拡鎾兼摎鎿掓搮鎿囨捇鎿樻搨鎿辨摟鑸夋摖鎿℃姮鎿f摨鏀摱鎿存摬鎿烘攢鎿芥敇鏀滄攨鏀ゆ敚鏀敶鏀垫敺鏀舵敻鐣嬫晥鏁栨晻鏁嶆晿鏁炴暆鏁叉暩鏂傛杻璁婃枦鏂熸柅鏂锋梼鏃嗘梺鏃勬棇鏃掓棝鏃欐棤鏃℃棻鏉叉槉鏄冩椈鏉虫樀鏄舵槾鏄滄檹鏅勬檳鏅佹櫈鏅濇櫎鏅ф櫒鏅熸櫌鏅版殐鏆堟殠鏆夋殑鏆樻殱鏇佹毠鏇夋毦鏆???????????????????????????????????????????????????????????????????鏇勬毟鏇栨洑鏇犳樋鏇︽洨鏇版浀鏇锋湉鏈栨湠鏈︽湩闇告湲鏈挎湺鏉佹湼鏈锋潌鏉炴潬鏉欐潱鏉ゆ瀴鏉版灘鏉兼潽鏋屾瀷鏋︽灐鏋呮灧鏌灤鏌灣鏌╂灨鏌ゆ煘鏌濇煝鏌灩鏌庢焼鏌ф獪鏍炴鏍╂妗嶆牪妗?姊虫牜妗欐。妗锋】姊熸姊姊濇姊冩姊规〈姊垫姊烘姊嶆【妞佹妞堟妞㈡う妫℃妫嶆妫ф妞舵妞勬妫fぅ妫规妫え妞妞fぁ妫嗘ス妤锋妤告カ妤旀ゾ妤す妤存そ妤欐ぐ妤℃妤濇妤Σ姒姒挎妲撴妲庡妲婃姒绘姒фó姒戞姒滄姒存妲ㄦ▊妯涙Э娆婃Ч妲叉Ё妯呮Ρ妯炴Л妯旀Й妯婃⊕娅佹ǎ妯撴﹦妯屾┎妯舵└姗囨姗欐│姗堟ǜ妯㈡獝妾嶆獱妾勬妾???????????????????????????????????????????????????????????????????妾楄槜妾绘珒娅傛妾虫娅炴珣娅熸娅氭娅绘瑓铇栨娆掓瑬楝辨瑹娆告鐩滄椋瓏姝冩瓑姝愭瓩姝旀瓫姝熸姝告姝挎畝娈勬畠娈嶆畼娈曟疄娈ゆ娈娈叉娈虫娈兼瘑姣嬫瘬姣熸姣姣?楹炬皥姘撴皵姘涙挨姘f睘姹曟雹姹矀娌嶆矚娌佹矝姹炬报姹虫矑娌愭硠娉辨硴娌芥硹娉呮碀娌脖娌炬埠娉涙朝娉欐唱娲熻娲舵传娲芥锤娲欐吹娲虫磼娲屾担娑撴丹娴氭倒娴欐稁娑曟郡娑呮饭娓曟笂娑垫穱娣︽陡娣嗘番娣炴穼娣ㄦ窉娣呮泛娣欐筏娣曟藩娣腑婀府娓欐共婀熸妇娓f公娓苟婀嶆笩婀冩负婀庢袱婊挎笣娓告簜婧簶婊夋悍婊撴航婧粍婧叉粩婊曟簭婧ユ粋婧熸絹婕戠亴婊桓婊炬伎婊叉急婊疾婊???????????????????????????????????????????????????????????????????婕炬紦婊锋締娼烘礁婢佹線娼經婵虫江婢傛郊娼樻編婢戞總娼︽境婢f尽婢ゆ竟婵嗘惊婵熸繒婵繑婵樻勘婵繘鐎夌嬫亢鐎戠佺忔烤鐎涚氭酱鐎濈樼熺扮剧茬亼鐏g倷鐐掔偗鐑辩偓鐐哥偝鐐儫鐑嬬儩?鐑欑剦鐑界劀鐒欑叆鐓曠唸鐓︾參鐓岀厲鐓啅鐕荤唲鐔曠啫鐔嚄鐔圭喚鐕掔噳鐕旂噹鐕犵嚞鐕х嚨鐕肩嚬鐕跨垗鐖愮垱鐖ㄧ埈鐖埌鐖茬埢鐖肩埧鐗鐗嗙墜鐗樼壌鐗剧妭鐘佺妵鐘掔姈鐘㈢姧鐘圭姴鐙冪媶鐙勭嫀鐙掔嫝鐙犵嫛鐙圭嫹鍊忕寳鐚婄寽鐚栫対鐚寸尟鐚╃尌鐚剧崕鐛忛粯鐛楃崻鐛ㄧ嵃鐛哥嵉鐛荤嵑鐝堢幊鐝庣幓鐝鐝ョ彯鐝炵挗鐞呯懐鐞ョ徃鐞茬惡鐟曠惪鐟熺憴鐟佺憸鐟╃懓鐟g應鐟剁懢鐠嬬挒鐠х搳鐡忕摂鐝???????????????????????????????????????????????????????????????????鐡犵摚鐡х摡鐡摬鐡扮摫鐡哥摲鐢勭攦鐢呯攲鐢庣攳鐢曠敁鐢炵敠鐢敿鐣勭晬鐣婄晧鐣涚晢鐣氱暕鐣ょ暓鐣暛鐣哥暥鐤嗙枃鐣寸枈鐤夌杺鐤旂枤鐤濈枼鐤g梻鐤崇梼鐤电柦鐤哥柤鐤辩棈鐥婄棐鐥欑棧鐥炵椌鐥?鐥肩榿鐥扮椇鐥茬棾鐦嬬槏鐦夌槦鐦х槧鐦$槩鐦ょ槾鐦扮樆鐧囩檲鐧嗙櫆鐧樼櫋鐧㈢櫒鐧╃櫔鐧х櫖鐧扮櫜鐧剁櫢鐧肩殌鐨冪殘鐨嬬殠鐨栫殦鐨欑殮鐨扮毚鐨哥毠鐨虹泜鐩嶇洊鐩掔洖鐩$洢鐩х洩铇浕鐪堢渿鐪勭湬鐪ょ湠鐪ョ湨鐪涚湻鐪哥潎鐫氱潹鐫潧鐫ョ澘鐫剧澒鐬庣瀷鐬戠灎鐬炵灠鐬剁灩鐬跨灱鐬界灮鐭囩煃鐭楃煔鐭滅煟鐭熂鐮岀爳绀︾牋绀纰庣〈纰嗙〖纰氱纰g⒌纰纾戠纾嬬纰剧⒓纾呯纾???????????????????????????????????????????????????????????????????纾х纾界4绀囩绀戠绀か绁绁犵绁熺绁曠绁虹タ绂婄绂ч綃绂Ξ绂崇绂虹绉曠Ё绉А绉g▓绋嶇绋欑绋熺绋辩ɑ绋剧ǚ绌冪绌夌绌㈢┅榫濈┌绌圭┙绐堢獥绐曠獦绐栫绔堢?绐剁珔绔勭閭冪珖绔婄珝绔忕珪绔撶珯绔氱珴绔$绔︾绔扮瑐绗忕瑠绗嗙绗樼瑱绗炵绗ㄧ绛愮绗勭瓖绗嬬瓕绛呯绛ョ绛х绛辩绛疂绠樼疅绠嶇疁绠氱畫绠掔畯绛濈畽绡嬬瘉绡岀瘡绠寸瘑绡濈绨戠皵绡︾绫犵皜绨囩皳绡崇绨楃皪绡剁埃绨х蔼绨熺胺绨敖绫岀眱绫旂睆绫绫愮睒绫熺堡绫栫饱绫钡绮冪矏绮ょ箔绮㈢搏绮$波绮崇膊绮辩伯绮圭步绯绯呯硞绯樼硳绯滅尝楝荤朝绯茬炒绯剁澈绱???????????????????????????????????????????????????????????????????绱傜礈绱曠磰绲呯祴绱床绱跨吹绲嗙党绲栫祹绲茬胆绲祻绲g稉缍夌禌缍忕到缍涚逗缍叮缍电穱缍界东绺界盯缍窚缍哥稛缍扮窐绶濈筏绶炵坊绶茬贰绺呯笂绺g浮绺掔副绺熺笁绺嬬涪绻嗙功绺荤傅绺圭箖绺?绺茬负绻х節绻栫篂绻欑箽绻圭躬绻╃辜绻荤簝绶曠菇杈箍绾堢簤绾岀簰绾愮簱绾旂簴绾庣簺绾滅几缂虹絽缃岀綅缃庣綈缃戠綍缃旂綐缃熺綘缃ㄧ僵缃х礁缇傜締缇冪緢缇囩緦缇旂緸缇濈練缇g警缇茬竟缇径缇歌缈呯繂缈婄繒缈旂俊缈︾咯缈崇抗椋滆嗚勮嬭掕樿欒滆¤ㄨ胯昏亰鑱嗚亽鑱樿仛鑱熻仮鑱ㄨ伋鑱茶伆鑱惰伖鑱借伩鑲勮倖鑲呰倹鑲撹倸鑲啇鑲儧鑳ヨ儥鑳濊儎鑳氳儢鑴夎儻鑳辫剾鑴╄劊鑴厠???????????????????????????????????????????????????????????????????闅嬭厗鑴捐厯鑵戣兗鑵辫叜鑵ヨ叇鑵磋唭鑶堣唺鑶鑶傝啝鑶曡啢鑶h厽鑶撹啯鑶拌喌鑶捐喐鑶借噣鑷傝喓鑷夎噸鑷戣嚈鑷樿噲鑷氳嚐鑷犺嚙鑷鸿嚮鑷捐垇鑸傝垍鑸囪垔鑸嶈垚鑸栬埄鑸埜鑸宠墍鑹欒墭鑹濊墯鑹熻墹?鑹㈣墾鑹壂鑸壉鑹疯壐鑹捐妽鑺掕姭鑺熻娀鑺嫛鑻h嫙鑻掕嫶鑻宠嫼鑾撹寖鑻昏嫻鑻炶寙鑻滆寜鑻欒尩鑼磋寲鑼茶尡鑽鑼硅崘鑽呰尟鑼寳鑼樿巺鑾氳帾鑾熻帰鑾栬專鑾庤巼鑾婅嵓鑾佃嵆鑽佃帬鑾夎帹鑿磋悡鑿弾鑿借悆鑿樿悑鑿佽彿钀囪彔鑿茶悕钀㈣悹鑾借惛钄嗚徎钁惇钀艰暁钂勮懛钁挱钁拏钁╄憜钀懐钁硅惖钃婅憿钂硅捒钂熻摍钃嶈捇钃氳搻钃佽搯钃栬挕钄¤摽钃磋敆钄樿敩钄熻敃钄旇摷钑钑h晿钑???????????????????????????????????????????????????????????????????钑佽槀钑嬭晻钖钖よ枅钖戣枈钖ㄨ暛钖旇枦钘枃钖滆暦钑捐枑钘夎柡钘忚柟钘愯棔钘濊棩钘滆椆铇婅槗铇嬭椌钘鸿槅铇㈣槡铇拌樋铏嶄箷铏旇櫉铏ц櫛铓撹殻铓╄毆铓嬭殞铓惰毌铔勮泦铓拌泬锠h毇铔旇洖铔╄洭?铔熻洓铔湌铚嗚湀铚铚冭浕铚戣湁铚嶈浌铚婅湸铚胯湻铚昏湧铚╄湚铦犺潫铦歌潓铦庤澊铦楄潹铦潤铦撹潱铦爡铻㈣灍铻傝灟锜嬭灲锜锜愰洊铻焺铻宠焽锜嗚灮锜煵锜犺爮锠嶈熅锜惰煼锠庤煉锠戣爾锠曡牏锠¤牨锠惰牴锠ц牷琛勮琛掕琛炶、琛琛捐琛佃〗琚佃〔琚傝琚掕琚欒ⅱ琚嶈ⅳ琚拌⒖琚辫瑁勮瑁樿瑁濊9瑜傝<瑁磋(瑁茶瑜岃瑜撹瑜炶ぅ瑜か瑗佽瑜昏ざ瑜歌瑜濊瑗???????????????????????????????????????????????????????????????????瑗﹁イ瑗オ瑗ゴ瑗疯ゾ瑕冭瑕婅瑕樿Α瑕╄Ζ瑕Ο瑕茶瑕借瑙瑙氳瑙濊Ё瑙磋Ц瑷冭瑷愯▽瑷涜瑷ヨǘ瑭佽瑭掕﹩瑭堣┘瑭┈瑭㈣獏瑾傝獎瑾ㄨ瑾戣瑾﹁獨瑾h珓璜嶈珎璜氳璜宠?璜よ璎旇珷璜㈣璜炶珱璎岃瑖璎氳璎栬瑦璎楄瑺璎抽灚璎﹁璎捐璀佽瓕璀忚瓗璀夎瓥璀涜瓪璀瓱璀璀磋璁璁岃畮璁掕畵璁栬畽璁氳昂璞佽翱璞堣睂璞庤睈璞曡雹璞备璞鸿矀璨夎矃璨婅矋璨庤矓璞艰矘鎴濊箔璨步璨茶渤璨捕璩堣硜璩よ常璩氳辰璩鸿郴璐勮磪璐婅磭璐忚磵璐愰綆璐撹硩璐旇礀璧ц淡璧辫党瓒佽稒璺傝毒瓒鸿窂璺氳窎璺岃窙璺嬭藩璺窡璺h芳韪堣笁璺胯笣韪炶笎韪熻箓韪佃赴韪磋箠???????????????????????????????????????????????????????????????????韫囪箟韫岃箰韫堣箼韫よ範韪梗韫曡苟韫茶辜韬佽簢韬呰簞韬嬭簥韬撹簯韬旇簷韬骸韬喊杌嗚罕韬捐粎杌堣粙杌涜唬杌艰换杌痪杓婅紖杓曡紥杓欒紦杓滆紵杓涜紝杓﹁汲杓昏脊杞呰絺杓捐綄杞夎絾杞庤綏杞?杞㈣剑杞よ緶杈熻荆杈警杈疯繗杩ヨ竣杩刊閭囪看閫呰抗杩洪戦曢¢嶉為栭嬮ч堕甸硅扛閬忛亹閬戦亽閫庨亯閫鹃仏閬橀仦閬ㄩ伅閬堕毃閬查倐閬介倎閭閭婇倝閭忛偍閭偙閭甸儮閮ゆ増閮涢剛閯掗剻閯查劙閰婇厲閰橀叄閰ラ叐閰抽叢閱嬮唹閱傞啟閱啹閱喌閱撮喓閲閲侀噳閲嬮噽閲栭嚐閲¢嚊閲奸嚨閲堕垶閲块垟閳垥閳戦墳閴楅墔閴夐墹閴堥姇閳块墜閴愰姕閵栭姄閵涢墯閶忛姽閵烽嫨閷忛嫼閸勯尞???????????????????????????????????????????????????????????????????閷欓將閷氶專閷洪尩閷婚崪閸犻嵓閸崠閹伴幀閹帞閹归彇閺楅彣閺ラ彉閺冮彎閺愰張閺ら悮閻旈悡閻冮悋閻愰惗閻惖閻¢惡閼侀憭閼勯憶閼犻憿閼為應閳╅懓閼甸懛閼介憵閼奸懢閽侀懣闁傞枃闁婇枖闁栭枠闁?闁犻枿闁ч柇闁奸柣闁归柧闂婃慷闂冮棈闂岄棔闂旈棖闂滈棥闂ラ棦闃¢槰闃槸闄傞檶闄忛檵闄烽櫆闄為櫇闄熼櫐闄查櫖闅嶉殬闅曢殫闅毀闅遍毑闅伴毚闅堕毟闅归泿闆嬮泬闆嶈闆滈湇闆曢浌闇勯渾闇堥湏闇庨湋闇忛湒闇欓湦闇湴闇归溄闇鹃潉闈嗛潏闈傞潐闈滈潬闈ら潶闈ㄥ嫆闈澅闈归瀰闈奸瀬闈洪瀱闉嬮瀼闉愰灉闉ㄩ灕闉i灣闉撮焹闊嗛焾闊嬮煖闊綇闊茬珶闊堕煹闋忛爩闋搁牑闋¢牱闋介椤忛椤’椤???????????????????????????????????????????????????????????????????椤遍〈椤抽ⅹ棰⒈棰堕椋冮椋╅+椁冮椁掗椁橀ぁ椁濋椁ら椁ぎ椁介ぞ楗傞楗呴楗嬮楗掗楗曢棣橀Ε棣Ξ棣奸椐涢椐橀椐М椐遍Р椐婚Ц楱侀◤楱呴Б楱欓ǐ楱烽﹨椹傞﹢椹?楱鹃⿻椹嶉椹楅椹㈤━椹ら┅椹┆楠楠奸珋楂忛珣楂撻珨楂為珶楂㈤楂﹂楂楂撮楂烽楝嗛瑯楝氶瑹楝㈤楝ラ楝ㄩ楝楝榄勯瓋榄忛瓖榄庨瓚榄橀楫撻畠楫戦畺楫楅疅楫犻楫撮瘈榀婇榀嗛瘡榀戦瘨榀i榀ら瘮榀¢昂榀查榀伴皶榘旈皦榘撻皩榘嗛皥榘掗皧榘勯爱榘涢哎榘ら啊榘伴眹榘查眴榘鹃睔楸犻抱楸堕备槌ч超槌伴磯榇堥倡榇冮磫榇处槎矗榇熼祫榇曢磼榈侀纯榇鹃祮榈???????????????????????????????????????????????????????????????????榈濋禐榈ら祽榈愰禉榈查秹槎囬东榈岛槎氶钉槎╅恫榉勯穪槎婚陡槎洪穯榉忛穫榉欓窊榉搁乏榉矾榉介笟楦涢笧楣甸构楣介簛楹堥簨楹岄簰楹曢簯楹濋亥楹╅焊楹涵闈¢粚榛庨粡榛愰粩榛滈粸榛濋粻榛ラ花榛?榛撮欢榛烽还榛婚患榛介紘榧堢毞榧曢肌榧季榻婇綊榻旈剑榻熼綘榻¢溅榻ч浆榻椒榻查蕉榫曢緶榫犲牤妲囬仚鐟ゅ嚋鐔???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????绾婅閸堥妶钃滀繅鐐绘槺妫堥嫻鏇诲絽涓ㄤ弧浠间紑浼冧脊浣栦緬渚婁練渚斾繊鍋鍊靠鍊炲亞鍋板亗鍌斿兇鍍樺厞鍏ゅ啙鍐惧嚞鍒曞姕鍔﹀媭鍕涘寑鍖囧尋鍗插帗鍘插彎铷庡挏鍜婂挬鍝垮枂鍧欏潵鍨焾鍩囷◤?铷愬澧插濂撳濂濆ィ濡ゅ瀛栧瘈鐢瘶瀵盀宀﹀埠宄靛揣宓擄☉宓傚淡宥稿豆宸愬肌寮村涧寰峰繛鎭濇倕鎮婃優鎯曟劆鎯叉剳鎰锋劙鎲樻垞鎶︽彽鎽犳挐鎿庢晭鏄鏄曟樆鏄夋槷鏄炴槫鏅ユ櫁鏅欙⊕鏅虫殭鏆犳毑鏆挎浐鏈庯ぉ鏉︽灮妗掓焵鏍佹妫忥〒妤〝姒樻Б妯版┇姗嗘┏姗炬娅ゆ瘱姘挎睖娌嗘悲娉氭磩娑囨弹娑栨冬娣忔犯娣叉芳娓规箿娓ф讣婧挎緢婢垫康鐎呯囩ㄧ倕鐐剰鐒勭厹鐓嗙厙铷曠噥鐕剧姳???????????????????????????????????????????????????????????????????鐘剧尋铷栫嵎鐜界弶鐝栫彛鐝掔悋鐝电惁鐞惄鐞憿鐠夌挓鐢佺暞鐨傜殰鐨炵殯鐨︼鐫嗗姱鐮$纭ょ『绀帮铷欙绂旓绂涚珣绔э绔疄铷濈祱绲滅斗缍犵窎绻掔絿缇★鑼佽崲鑽胯弴鑿惰憟钂磋晸钑?钑钖帮铷¤爣瑁佃⊕瑷疯┕瑾ц璜燂á璜惰瓝璀胯嘲璩磋磼璧讹ǎ杌忥à铷ラ仹閮烇é閯曢劎閲氶嚄閲為嚟閲嚖閲ラ垎閳愰垔閳洪墍閳奸墡閴欓墤閳归墽閵ч壏閴搁嫥閶楅嫏閶愶ě閶曢嫚閶撻尌閷¢嫽铷ㄩ尀閶块対閷傞嵃閸楅帳閺嗛彏閺搁惐閼呴憟闁掞铷╅殱闅湷闇婚潈闈嶉潖闈戦潟椤楅ˉ铷ǐ椁эì棣為⿴楂欓珳榄甸楫忛楫婚皜榈伴但铷笝榛??鈪扳叡鈪测叧鈪粹叺鈪垛叿鈪糕吂锟郡锛囷紓???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鈪扳叡鈪测叧鈪粹叺鈪垛叿鈪糕吂鈪犫叀鈪⑩叄鈪も叆鈪︹収鈪ㄢ叐锟郡锛囷紓銏扁剸鈩♀埖绾婅閸堥妶钃滀繅鐐绘槺妫堥嫻鏇诲絽涓ㄤ弧浠间紑浼冧脊浣栦緬渚婁練渚斾繊鍋鍊靠鍊炲亞鍋板亗鍌斿兇鍍樺厞?鍏ゅ啙鍐惧嚞鍒曞姕鍔﹀媭鍕涘寑鍖囧尋鍗插帗鍘插彎铷庡挏鍜婂挬鍝垮枂鍧欏潵鍨焾鍩囷◤铷愬澧插濂撳濂濆ィ濡ゅ瀛栧瘈鐢瘶瀵盀宀﹀埠宄靛揣宓擄☉宓傚淡宥稿豆宸愬肌寮村涧寰峰繛鎭濇倕鎮婃優鎯曟劆鎯叉剳鎰锋劙鎲樻垞鎶︽彽鎽犳挐鎿庢晭鏄鏄曟樆鏄夋槷鏄炴槫鏅ユ櫁鏅欙⊕鏅虫殭鏆犳毑鏆挎浐鏈庯ぉ鏉︽灮妗掓焵鏍佹妫忥〒妤〝姒樻Б妯版┇姗嗘┏姗炬娅ゆ瘱姘挎睖娌嗘悲娉氭磩娑囨弹???????????????????????????????????????????????????????????????????娑栨冬娣忔犯娣叉芳娓规箿娓ф讣婧挎緢婢垫康鐎呯囩ㄧ倕鐐剰鐒勭厹鐓嗙厙铷曠噥鐕剧姳鐘剧尋铷栫嵎鐜界弶鐝栫彛鐝掔悋鐝电惁鐞惄鐞憿鐠夌挓鐢佺暞鐨傜殰鐨炵殯鐨︼鐫嗗姱鐮$纭ょ『绀帮铷?铷氱铷涚绔戠铷滅绠烇绲堢禍缍风稜绶栫箳缃囩尽铷炶寔鑽㈣嵖鑿囪彾钁堣挻钑撹暀钑钖帮铷¤爣瑁佃⊕瑷疯┕瑾ц璜燂á璜惰瓝璀胯嘲璩磋磼璧讹ǎ杌忥à铷ラ仹閮烇é閯曢劎閲氶嚄閲為嚟閲嚖閲ラ垎閳愰垔閳洪墍閳奸墡閴欓墤閳归墽閵ч壏閴搁嫥閶楅嫏閶愶ě閶曢嫚閶撻尌閷¢嫽铷ㄩ尀閶块対閷傞嵃閸楅帳閺嗛彏閺搁惐閼呴憟闁掞铷╅殱闅湷闇婚潈闈嶉潖闈戦潟椤楅ˉ铷ǐ椁эì棣為⿴楂???????????????????????????????????????????????????????????????????楂滈榄查畯楫遍榘榈伴但铷笝榛???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂罂罂ⅰ罂ⅱ罂ⅲ罂ⅳ罂ⅴ罂ⅵ罂ⅶ罂ⅷ罂ⅸ罂ⅹ罂罂罂罂罂罂罂⒈罂⒉罂⒊罂⒋罂⒌罂⒍罂⒎罂⒏罂⒐罂⒑罂⒒罂⒓罂⒔罂⒕罂⒖罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂!罂"罂#罂¥罂%罂&罂'罂(罂)罂*罂+罂,罂-罂.罂/罂0罂1罂2罂3罂4罂5罂6罂7罂8罂9罂:罂;罂<???????????????????????????????????????????????????????????????????罂罂罂罂罂罂罂罂罂罂??????罂罂罂??罂罂罂???罂罂罂罂???????????????????罂ゲ罂コ罂ゴ罂サ罂ザ罂シ罂ジ罂ス罂ズ罂セ罂ゼ罂ソ罂ゾ?罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂Α罂Β罂Γ罂Δ罂Ε罂Ζ罂Η罂Θ罂Ι罂Κ罂Λ罂Μ罂Ν罂Ξ罂Ο罂Π????????????????????????????????????????????????????????????????????????????????丠鶈仼仺佱佲?????亹??????????亄亅鶡仾伀?仴仯????????鵁鵡????鶓??亊?????亊?仺仼亐?鶗仚鵌??鵈??鶢????????仯仴?????鵂鵺鵽??????鶃鶀??????????鵈??????????鵕?鵶????????????鵷?鵊??丂 ??鶉鶊鶋鶌鶍鶎鶏鶐鶑10????????????????????????鵓??????鵋???????????????鵉?????鶗鶘鶙??鶕鶖鶡???鶓鶠????旈???摼???鶝?????Ez鵾??UP??????鵃??鶂鶒鶛鶔????鶄????????鶝?????鶖???????????VS???????????????妱僒鵿枮嬻巜塩????????????廽???????????鶓鶓鶓鶓鶓????????????????????鶚???????????鶝鶗?????????????????????????????????????????????????壜?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????俙俛俷AB?鶜???????????????????????鶟???????????????????鶘????鵺??????????????鵺???鶓????佁??????鵺?鶇?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鶒鶉鶊鶋鶌鶍鶎鶏鶐鶑101112鶉鶊鶋鶌鶍鶎鶏鶐鶑10塩廧岎媥擭怑惾巜鶈俙摿旈挻媫攦攧惻慡宯懓????????鵈???????????????鵉???????鵋鶟?????????????????????????????????????????????????????鶞???鵁鵂?仼仺?鶁?????鶠?鶓鶖????????????????????????????????????????????????????????????????????????鶝?????????????????????鵷????鵡鶢???鵕?????鵺鶃??????????????????????????????鵔鶀?????????????????????????鵙???????????弔壞廐搤?鶗鶙鶘??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鶢鶢鶢鶢鵁鵁鵁鵁鶕鶕鶕鶕?鶗鶗鶗?????????????????????????????????????????????????????????鶇鶒??鶒鶉鶊鶋鶌鶍鶎鶏鶐鶑10??-!亹%./:;?@^_'"亄=亊亐仜鵽?????????NG摼妱倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸???????????????????????????????????????????????????????????????????俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯?偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傢傪傫傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈儉儊儌儍儎儏儐儑儓儔儕儖儗儘儚儝儞?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鵊??????鵆鵇????鵌佁???鶄????鶔鶆??????????????鵺???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鵁鵂???????????????????????????????????????????????????????????????????鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌??????鵓鵔鵕??鵘鵙鵚???鵞鵟鵠鵡???????????????????鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁?鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢?????????鵔???鵕????????鶘?鶖???鶗??鶙?NG????旈??嬛嬻崌枮佁?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鵶鵵?鶖???????鶢???鶃?????????????鶞??????VS鵔??????????????????????????????????????????????????????????????????????????廽???旈?????????????鵓?鶝鶓鶓鶓鶓鶓鶓鶓鶡仚仜亊仚丠?????????????????????????????????????????????????????????????????????????????????鶇鶆鶄UP?桳柍寧怽???鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒摼妱僒鵿枮嬻巜塩????仾伀仺仼鵌仺仼佲佱????????俰?????????????????????????????????????????????????鶚????????????鶗鶗鶘?????????????????????????????????????????????????????????????????????????????????????????????????????鶠????鵷??????鵊丠鶓鶕???????????????鵋?????鶝鶀?????鵂鵁???鵉??鵈???鶗鶗鶙鶘???????????????????????????????????????????????????????????????????????????????鵈???????俙俛AB俷????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂罂罂ⅰ罂ⅱ罂ⅲ罂ⅳ罂ⅴ罂ⅵ罂ⅶ罂ⅷ罂ⅸ罂ⅹ罂罂罂罂罂罂罂⒈罂⒉罂⒊罂⒋罂⒌罂⒍罂⒎罂⒏罂⒐罂⒑罂⒒罂⒓罂⒔罂⒕罂⒖罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂!罂"罂#罂¥罂%罂&罂'罂(罂)罂*罂+罂,罂-罂.罂/罂0罂1罂2罂3罂4罂5罂6罂7罂8罂9罂:罂;罂<???????????????????????????????????????????????????????????????????罂罂罂罂罂罂罂罂罂罂??????罂罂罂??罂罂罂???罂罂罂罂???????????????????罂ゲ罂コ罂ゴ罂サ罂ザ罂シ罂ジ罂ス罂ズ罂セ罂ゼ罂ソ罂ゾ?罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂Α罂Β罂Γ罂Δ罂Ε罂Ζ罂Η罂Θ罂Ι罂Κ罂Λ罂Μ罂Ν罂Ξ罂Ο罂Π罂Ρ罂Σ罂Τ罂Υ罂Φ罂Χ罂Ψ罂Ω罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂А罂Б罂В罂Г罂Д罂Е罂Ё罂Ж罂З罂И罂Й罂К罂Л罂М罂Н罂О罂П罂Р罂С罂Т罂У罂Ф罂Х罂Ц罂Ч罂Ш罂Щ罂Ъ????丠鶈仼仺佱佲????亹?????????亄亅鶡仾伀?仴仯????????鵁鵡???鶓亊???亊?仺仼亐?仚鵌?鵈??鶢?????仯仴?????鵂鵺鵽?????鶃鶀?????????鵈??????????鵶??駀?????????鵷?鵊??丂 ??鶉鶊鶋鶌鶍鶎鶏鶐鶑10??????????????????????鵓??????鵋????????鵉???鶘?鶕鶖鶡???鶓鶠???????摼??鶝????Ez鵾??UP??????鵃??鶂鶒鶛鶔???鶄??????鶝??????????????VS??????????????妱僒鵿巜塩???????????廽???????????鶓鶓鶓鶓鶓?????????????????鶚???????????鶝?????????????????????????????????????????????????壜???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????俙俛俷AB?鶜??????????????????????鶟???????????????????????鵺??????????????鵺???鶓??鵺?鶇?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鶒鶉鶊鶋鶌鶍鶎鶏鶐鶑101112鶉鶊鶋鶌鶍鶎鶏鶐鶑10塩廧岎媥擭怑惾巜鶈俙摿挻媫攦攧惻慡宯懓???????鵈???????????????鵉?????鵋鶟????????????????????????????????????????????鶞??鵁鵂?仼仺鶁????鶠?鶓鶖????????????????????????????????????????????????????????????????????????鶝?????????????????鵷???鵡鶢??????鵺鶃???????????????????????????鶀????????????????????????鵙??????????弔壞廐搤鶘??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鶢鶢鶢鶢鵁鵁鵁鵁鶕鶕鶕鶕?鶗鶗鶗?????????????????????????????????????????????????????????鶇鶒??鶒鶉鶊鶋鶌鶍鶎鶏鶐鶑10??-!亹%./:;?@^_'"亄=亊亐仜鵽?????????摼妱倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸???????????????????????????????????????????????????????????????????俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯?偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傢傪傫傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈儉儊儌儍儎儏儐儑儓儔儕儖儗儘儚儝儞?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鵊?????鵆鵇????鵌???鶄????鶔鶆??????????????鵺???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鵁鵂???????????????????????????????????????????????????????????????????鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌??????鵓鵔鵕??鵘鵙鵚???鵞鵟鵠鵡???????????????????鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁?鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????鵶鵵????鶢??鶃???????????鶞??????VS???????????????????????????????????????????????????????????????????????廽???????????????鵓鶝鶓鶓鶓鶓鶓鶓鶓鶡仚仜亊仚丠????????????????????????????????????????????????????????????????????????????鶇鶆鶄UP?桳柍寧怽???鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒摼妱僒鵿巜塩????仾伀仺仼鵌仺仼佲佱??????俰???????????????????????????????????????????????鶚???????????鶘????????????????????????????????????????????????????????????????????????????????????????????????????鶠???鵷??鵊丠鶓鶕??????????????鵋??鶝鶀????鵂鵁???鵉??鵈?鶗鶘????????????????????????????????????????????????????????????????????????????鵈???????俙俛AB俷?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂瓈罂瓉罂瓊罂瓋罂瓌罂瓍罂瓎罂瓏罂瓐罂瓑罂瓓罂瓔罂瓕罂瓖罂瓗罂瓘罂瓙罂瓚罂瓛罂瓝罂瓟罂瓡罂瓥罂瓧罂瓨罂瓩罂瓪罂瓫罂瓬罂瓭罂瓰罂瓱罂瓲罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂啊罂阿罂埃罂挨罂哎罂唉罂哀罂皑罂癌罂蔼罂矮罂艾罂碍罂爱罂隘罂鞍罂氨罂安罂俺罂按罂暗罂岸罂胺罂案罂肮罂昂罂盎罂凹罂敖罂熬罂翱罂眬罂眮罂眰罂眱罂眲罂眳罂眴罂眹罂眻罂眽罂眾罂眿罂睂罂睄罂睅罂睆罂睈罂睉罂睊罂睋罂睌罂睍罂睎罂睏罂睒罂睓罂睔罂睕罂睖罂睗罂睘罂睙罂睜罂薄罂雹罂保罂堡罂饱罂宝罂抱罂报罂暴罂豹罂鲍罂爆罂杯罂碑罂悲罂卑罂北罂辈罂背罂贝罂钡罂倍罂狈罂备罂惫罂焙??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂础罂储罂矗罂搐罂触罂处罂揣罂川罂穿罂椽罂传罂船罂喘罂串罂疮罂窗罂幢罂床罂闯罂创罂吹罂炊罂捶罂锤罂垂罂春罂椿罂醇罂唇罂淳罂纯罂祤罂祦罂祩罂祪罂祫罂祬罂祮罂祰罂祱罂祲罂祳罂祴罂祵罂祶罂祹罂祻罂祼罂祽罂祾罂祿罂禂罂禃罂禆罂禇罂禈罂禉罂禋罂禌罂禍罂禎罂禐罂禑罂禒罂怠罂耽罂担罂丹罂单罂郸罂掸罂胆罂旦罂氮罂但罂惮罂淡罂诞罂弹罂蛋罂当罂挡罂党罂荡罂档罂刀罂捣罂蹈罂倒罂岛??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Fr$GA$G@俻$F[$FZ$F]$F\??倝?$Eb亹?$E]?????????亄亅仚$FR$FS?仴仯????????$FW$FX$Gj??$Gl??$G"$GB?$E0?亊?????亊?$FT$FU$Gg亐?$Gv仚$FV$FY$GU?$Gr??$E/??$G!$Fn$Fo$E>?$G)??仯仴?$Eh?$Ge$G($Gk?$Eh?$En$Eh$Eh$Eh???$EE$Gi$E#亸$G]?$GV??$EI???$E4$G_$Eh$Eh??$Ez???$E!???$E8$Gr?????$FP$FQ$Eh?$E2?$Gc$Eh???$E#???$G)?????$G*????$G+?$G=$G<??$G>丂 ??$F($F*$F)$F<$F=$F>$F?$F@$FA$FB$FC$FD10?$Gh?????????????$Et?$Eq$Eo$Ep$Ek?$Em$GZ??$Ey$G???$G5$G3$ER$ED?????$ES?$EP??$GS$GP$E;??$Gf??$G9??$E@$Gt?$G:$E)?$Go$Gu?$E+??$Gw$Gy$Gx?$E\$Gy$E($E%$GC$GB仚?$E=?$El$GB$G#$E,??$E:?旈?$G-???$FF$E<$G.$EJ$G\?$G^$Ga?$G^?$E3?$Ez?$EF??$F3$E[?$G4???????$F.$F-$F/??$G1$G2????$FE$Fm?$GB?$E(???$F2??$G,$EH?$GW?$G[$G^$Gn$Gp$Gq$Gs?$E&$E'$E($E*$E-$E.$E1$E6$E7$E9$E>$EA$EB$EM$EN$EQ???$EW$E_?$Ef?$Ej?$Es$Eu$Ew$Ex$F"$F'$F+$F4$FG$FH$FI$FJ$FK$FL$FM$FN$FO?$Fp$Fq???????廽???????????$F,$GB$GB$GB$GB$GB?$G3???????????????????$Gx???????????$G^$Gv??????????????$Gb??????????????????????$Ex$Gm????????????壜???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$EZ??$G9?$G9????????俙俛俷AB?????!?!!乣???????????????$G7???????????????????????????$Gy????$E#??????????????$E#$F!??$GB????佁??????$E#?$G0$F0?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD101112$F<$F=$F>$F?$F@$FA$FB$FC$FD10$FM廧岎媥擭怑惾$FL俻俙摿旈挻媫攦攧惻慡宯懓$Gs$Gp???$G:$E)?$Gr???????????????$Go?$Gt$G9$E*???$GS???$GP$E9???????$G$$G%??$G!$G"$EZ??$E,$Gn$E:$Ez$Ey$G>$F!$G?$G=$F"??$Gc$Ev$E@??$Gg?$Ge$Gc???$G\$Ex$Ex?$ED?$G]???$G[???$El$ES$EM$ET$EV$EU????$G5$G4$G3$G3?$Eo$GZ$Ep$Gc??$Eu$EA$EC$Em??$Ew$F(?$Gj$Gi$Gk$Gh$E]?$F[$FZ???$FQ$FP$FO$FN$G0$G1$G2$G#$E<$GB$GB$F,$F-???????????????????????????????????????????????????????????????????$F/$F.!!!??????$G^$E0???$G&??$G&?????$E^??????$E>???$GT$G*$G*$G)$G)?$G+$G,????$G($E/?$EJ$EH$G^?$EF$E-??$Eh$Eh???$Es??$E#$E4??$GV$GX$GW???????????????????$E3??????$E.$GU$EO$G_$Ed?$E6?????????$Ga?$Eb$EE$E2???$Gk????????$Gz??$Gf???????弔壞廐搤?$Gw$Gx$Gy??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E5$E5$E5$E5????????????????????$G:$G:$G:$G:$E/$E/$E/$E/$Gj$Gj$Gj$Gj$GC$GC$GC$GC?$Gw$Gw$Gw?????????????????????????????????????????????????????????$F0$FE??$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD10??-!亹%./:;?@^_'"亄=亊亐仜亸?????????$FmNG$FF$FG倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸???????????????????????????????????????????????????????????????????俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯?偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傢傪傫傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈儉儊儌儍儎儏儐儑儓儔儕儖儗儘儚儝儞?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$G$$G%???$Ez$Ez?$G<$ER??$En???$Et$Eq$F*?????????$FV$FX$FW$FY佁???$F2$GA??$F)?$GB$F1??????????????$E#????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Gj$Gi$Gk$Gh$E]???$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj??$G4$G5?$G3?$ER?$G>?$G?$Ez$Ez$Ey$F"$G=$GV$GX$Es$Eu$Em$Et$Ex$Ev$GZ$Eo$En$Eq$Gc$Ge?$Gg$E@$E^?$G\$G]$FV?$G^???$EE?$F($G($E>$Eh?$E2?$G)$G*$Eh$EJ?$EF$F,$F.$F-$F/??$G0$G1$G2$FX$FW???$F*????????????????????????????????????????????????????????????????????????$Gr$Go$G<$GS$FY??????????????????$ON?????????????????????$E$$E#$G+倝倝$E#??亸?$FI$G_???$E4$F2?$F1$F0俻$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$GB$GB$GC$GB$Gw$Gy$Gx$Gx??$G^$EC?$G#?$E/$Gy$G-???$E\$GA!?!!?$E($E(?乣乣$Fm??$G&???$G3??$EO$G,???$E.$GT??????$E($E($Gy?$E&$G.$E%?$Gw??$Gx?NG?$Fn?$E5旈?$Fo$Fr嬛$FK崌$FJ佁?$Ew?$G[$E0?????$E8$GP?$Gf?????$Gu$G9??$G:$E+?$E'????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E!$E"$E#$E$$E%$E&$E'$E($E)$E*$E+$E,$E-$E.$E/$E0$E1$E2$E3$E4$E5$E6$E7$E8$E9$E:$E;$E<$E=$E>$E?$E@$EA$EB$EC$ED$EE$EF$EG$EH$EI$EJ$EK$EL$EM$EN$EO$EP$EQ$ER$ES$ET$EU$EV$EW$EX$EY$EZ$E[$E\$E]$E^$E_$E`$Ea$Eb$Ec$Ed$Ee$Ef$Eg$Eh$Ei$Ej$Ek$El$Em$En$Eo$Ep$Eq$Er$Es$Et$Eu$Ev$Ew$Ex$Ey$Ez??????????????????????????????????????????????$E`$G^??廽???????旈?$Eb???????????$E>??$G^$GB$GB$GB$GB$GB$GB$GB?仚?$E(仜亊$Gy仚$G@$GA?????????????????????????????????????????????????????????????????????????$F!$F"$F#$F$$F%$F&$F'$F($F)$F*$F+$F,$F-$F.$F/$F0$F1$F2$F3$F4$F5$F6$F7$F8$F9$F:$F;$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$FF$FG$FH$FI$FJ$FK$FL$FM$FN$FO$FP$FQ$FR$FS$FT$FU$FV$FW$FX$FY$FZ$F[$F\$F]$F^$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj$Fk$Fl$Fm$Fn$Fo$Fp$Fq$Fr$Fs$Ft$Fu$Fv$Fw$Fx$Fy$Fz??????????????????????????????????????$E(?????$Gx????????????$Gv$Gw$Gy???????????????????????$Ez??????$G????????$GW?????????$E9?$Gm???????????????????????????????????????????????????????$G!$G"$G#$G$$G%$G&$G'$G($G)$G*$G+$G,$G-$G.$G/$G0$G1$G2$G3$G4$G5$G6$G7$G8$G9$G:$G;$G<$G=$G>$G?$G@$GA$GB$GC$GD$GE$GF$GG$GH$GI$GJ$GK$GL$GM$GN$GO$GP$GQ$GR$GS$GT$GU$GV$GW$GX$GY$GZ$G[$G\$G]$G^$G_$G`$Ga$Gb$Gc$Gd$Ge$Gf$Gg$Gh$Gi$Gj$Gk$Gl$Gm$Gn$Go$Gp$Gq$Gr$Gs$Gt$Gu$Gv$Gw$Gx$Gy$Gz????????????????????????????????????????????$G]??????????????????$EZ?????$G9?$G9?????$E)?$Gr???????俙俛AB俷???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂罂瘈罂瘉罂瘋罂瘍罂瘎罂瘏罂瘑罂瘒罂瘓罂瘔罂瘖罂瘚罂瘜罂瘝罂瘞罂瘡罂瘣罂瘧罂瘨罂瘬罂瘮罂瘯罂瘱罂瘲罂瘶罂瘷罂瘹罂瘺罂瘻罂瘽罂癁罂療罂癄罂罂罂罂罂罂罂罂罂罂罂罂罂???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂病罂并罂玻罂菠罂播罂拨罂钵罂波罂博罂勃罂搏罂铂罂箔罂伯罂帛罂舶罂脖罂膊罂渤罂泊罂驳罂捕罂卜罂哺罂补罂埠罂不罂布罂步罂簿罂部罂硛罂硜罂硞罂硟罂硠罂硡罂硢罂硣罂硤罂硥罂硦罂硧罂硨罂硩罂硯罂硰罂硱罂硲罂硳罂硴罂硵罂硶罂硸罂硹罂硺罂硻罂硽罂硾罂硿罂碀罂碁罂碂罂碃罂场罂尝罂常罂长罂偿罂肠罂厂罂敞罂畅罂唱罂倡罂超????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂丁罂盯罂叮罂钉罂顶罂鼎罂锭罂定罂订罂丢罂东罂冬罂董罂懂罂动罂栋罂侗罂恫罂冻罂洞罂兜罂抖罂斗罂陡罂豆罂逗罂痘罂都罂督罂毒罂犊罂穩罂穪罂穫罂穬罂穭罂穮罂穯罂穱罂穲罂穳罂穵罂穻罂穼罂穽罂穾罂窂罂窅罂窇罂窉罂窊罂窋罂窌罂窎罂窏罂窐罂窓???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Fr$GA$G@俻$F[$FZ$F]$F\??倝?$O7亹?$E]?????????亄亅$OO$FR$FS?仴仯????????$FW$FX$Gj??$Gl$OE?$G"$GB?$E0$QW亊?????$OS?$FT$FU$Gg亐?$P4$OO$FV$FY$GU?$Gr$Pk?$E/$QC?$G!$Fn$Fo$OC?$G)??仯仴$Q,$Eh$O!$Ge$G($Gk$PK$Eh?$En$Eh$Eh$Eh?$O3?$EE$Gi$E#亸$G]?$GV$O$?$EI???$E4$G_$Eh$Eh?$O:$Ez???$E!???$E8$QJ?????$FP$FQ$Eh?$E2?$Gc$Eh$PO??$E#???$G)?????$G*????$G+?$G=$G<??$G>丂 ?$O.$F($F*$F)$F<$F=$F>$F?$F@$FA$FB$FC$FD10$Pc$Gh?????????????$Et?$Eq$Eo$Ep$Ek?$Em$GZ??$Ey$G???$G5$G3$ER$ED??$OD?$Q)$ES?$EP??$GS$GP$E;$Q+$Oh$Gf??$G9$Og$Ob$E@$Gt$QL$G:$E)$QQ$Go$Gu?$E+$O'$O%$P5$P6$Gx?$E\$OT$E($E%$GC$GB$OO$O1$E=?$El$OI$G#$E,?$QV$E:?$O5?$G-$OP??$FF$E<$G.$EJ$G\?$G^$Ga?$O*$O<$E3$O>$Ez?$EF$O9?$F3$E[?$G4$PJ????$O4$Ok$F.$F-$F/$P9$P;$G1$G2????$FE$Fm?$GB?$OQ??$O`$F2??$G,$EH?$GW$PT$G[$G^$Gn$Gp$Gq$Gs?$E&$E'$E($E*$E-$E.$E1$E6$E7$E9$E>$EA$EB$EM$EN$EQ?$Q1$Q2$EW$E_?$Ef?$Ej?$Es$Eu$Ew$Ex$F"$F'$F+$F4$FG$FH$FI$FJ$FK$FL$FM$FN$FO?$Fp$Fq$O!$O"$O#$O&$O($O+$O,$O-?$O0$O2?$O8$O;$O=$O?$O@$OA$OB$F,$OG$OJ$OK$OL$OM?$G3?$OX$OY$OZ$O[$O\$O]$O^$O_$Oa$Oc$Od$Oe$Of$Oi$Oj$Ol?$P"$P'?????$P/??$P.??$OF$Gv?$P8$P:$P<?$P?$P@$PA$P>???$PE$PI$Gb$PL$PM$PP$PQ$PR$PS$PV$PX??$P[$P\?$P_$P`$Pa$Pb?$Pf$Ph$Pk$Pl$Ex$Pi$Q#$Q$$Q%$Q&?$Q-??????壜?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Q.$Q/$Q0$Q3$Q4$Q5$Q6$Q7??$Q:$Q;$Q<$Q@?$QB$QE$QF$QG$QK?$QA?$QP$QR$QS$QU$QT$QV????!?!!乣???????????????$G7????????$OZ??????????????????$Gy????$E#??????????????$E#$F!??$OH$QC???佁?$P^????$E#?$G0$F0?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD101112$F<$F=$F>$F?$F@$FA$FB$FC$FD10$FM廧岎媥擭怑惾$FL俻俙摿$O5挻媫攦攧惻慡宯懓$Gs$Gp$QL?$QM$G:$E)$QN$Gr$QO??????????????$Go$QF$Gt$Q@$E*???$GS?$O$$O%$GP$E9$Of$Oe?$Og???$G$$G%??$G!$G"$Q:?$Ph$E,$Gn$E:$PN$Ey$G>$F!$G?$G=$F"??$Gc$Ev$E@$O`$O+$Gg?$Ge$Gc?$Od?$G\$Ex$Ex?$ED?$G]???$G[???$El$ES$EM$ET$EV$EU???$PJ$G5$G4$G3$G3?$Eo$GZ$Ep$Gc??$Eu$EA$EC$Em??$Ew$F($O.$Gj$Gi$Gk$Gh$E]?$F[$FZ???$FQ$FP$FO$FN$G0$G1$G2$G#$E<$GB$GB$F,$F-???????????????????????????????????????????????????????????????????$F/$F.!!!??????$G^$E0$QE$PY?$G&??$G&?????$E^?$O"?$Q#??$OC???$GT$G*$G*$G)$G)?$G+$G,????$G($E/?$EJ$EH$O*?$EF$E-??$Eh$Eh?$O3?$Es??$E#$E4??$GV$GX$GW$Q&??????????????????$E3$O1?????$E.$GU$EO$G_$Ed?$E6???$OZ?????$Ga?$O7$EE$E2$O<??$Gk??$O]?????$Gz??$Gf???$O,?$O2?弔壞廐搤$P($P5$Gx$P6??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E5$E5$E5$E5????????????????????$G:$G:$G:$G:$E/$E/$E/$E/$Gj$Gj$Gj$Gj$GC$GC$GC$GC?$Gw$Gw$Gw?????????????????????????????????????????????????????????$F0$FE??$FE$F<$F=$F>$F?$F@$FA$FB$FC$FD10??-!亹%./:;?@^_'"亄=亊亐$OR亸?????????$FmNG$FF$FG倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸???????????????????????????????????????????????????????????????????俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯?偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傢傪傫傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈儉儊儌儍儎儏儐儑儓儔儕儖儗儘儚儝儞??????????????????????????????????????????????????????????????????????????$QV$QV?????????????????????????????????????????????????????????$QQ???$G$$G%???$Ez$Ez?$G<$ER$Ob?$En???$Et$Eq$F*?$Pc$P\??$Pk???$FV$FX$FW$FY佁???$F2$OW??$F)?$GB$F1??????????????$E#?????????????$P;??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$Gj$Gi$Gk$Gh$E]$Pc?$P\$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj??$G4$G5?$G3$PJ$ER?$G>?$G?$Ez$PN$Ey$F"$G=$GV$GX$Es$Eu$Em$Et$Ex$Ev$GZ$Eo$En$Eq$Gc$Ge?$Gg$E@$E^$O3$G\$G]$FV?$O*???$EE$O.$F($G($OC$Eh$O4$E2?$G)$G*$Eh$EJ?$EF$F,$F.$F-$F/$P9$P;$G0$G1$G2$FX$FW$QV??$F*????????????????????????????????????????????????????????????????????????$Gr$Go$G<$GS$FY??????$OD???????????$ON?????????????????????$E$$E#$G+倝倝$E#??亸?$FI$G_???$E4$F2?$F1$F0俻$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$GB$GB$GC$GB$Gw$P6$Gx$P'??$G^$EC?$G#$ON$E/$OT$G-$O1??$E\$OW!?!!?$OQ$E($OP乣乣$Fm??$G&?$O<?$G3$OE?$EO$G,???$E.$GT??$OX???$E($P!$Gy?$E&$G.$E%$P%$P5$P&?$Gx$P(NG?$Fn$QW$E5$O5?$Fo$Fr嬛$FK崌$FJ佁?$Ew$P^$G[$E0?$O$?$Oe?$E8$GP$Ob$Gf$O+$O`$OY?$QC$Gu$G9??$G:$E+?$E'????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????$E!$E"$E#$E$$E%$E&$E'$E($E)$E*$E+$E,$E-$E.$E/$E0$E1$E2$E3$E4$E5$E6$E7$E8$E9$E:$E;$E<$E=$E>$E?$E@$EA$EB$EC$ED$EE$EF$EG$EH$EI$EJ$EK$EL$EM$EN$EO$EP$EQ$ER$ES$ET$EU$EV$EW$EX$EY$EZ$E[$E\$E]$E^$E_$E`$Ea$Eb$Ec$Ed$Ee$Ef$Eg$Eh$Ei$Ej$Ek$El$Em$En$Eo$Ep$Eq$Er$Es$Et$Eu$Ev$Ew$Ex$Ey$Ez??????????????????????????????????????$O!$O"$O#$O$$O%$O&$O'$O($O)$O*$O+$O,$O-$O.$O/$O0$O1$O2$O3$O4$O5$O6$O7$O8$O9$O:$O;$O<$O=$O>$O?$O@$OA$OB$OC$OD$OE$OF$OG$OH$OI$OJ$OK$OL$OM$ON$OO$OP$OQ$OR$OS$OT$OU$OV$OW$OX$OY$OZ$O[$O\$O]$O^$O_$O`$Oa$Ob$Oc$Od$Oe$Of$Og$Oh$Oi$Oj$Ok$Ol$Om???????????????????????????????????????????????????$F!$F"$F#$F$$F%$F&$F'$F($F)$F*$F+$F,$F-$F.$F/$F0$F1$F2$F3$F4$F5$F6$F7$F8$F9$F:$F;$F<$F=$F>$F?$F@$FA$FB$FC$FD$FE$FF$FG$FH$FI$FJ$FK$FL$FM$FN$FO$FP$FQ$FR$FS$FT$FU$FV$FW$FX$FY$FZ$F[$F\$F]$F^$F_$F`$Fa$Fb$Fc$Fd$Fe$Ff$Fg$Fh$Fi$Fj$Fk$Fl$Fm$Fn$Fo$Fp$Fq$Fr$Fs$Ft$Fu$Fv$Fw$Fx$Fy$Fz??????????????????????????????????????$P!$P"$P#$P$$P%$P&$P'$P($P)$P*$P+$P,$P-$P.$P/$P0$P1$P2$P3$P4$P5$P6$P7$P8$P9$P:$P;$P<$P=$P>$P?$P@$PA$PB$PC$PD$PE$PF$PG$PH$PI$PJ$PK$PL$PM$PN$PO$PP$PQ$PR$PS$PT$PU$PV$PW$PX$PY$PZ$P[$P\$P]$P^$P_$P`$Pa$Pb$Pc$Pd$Pe$Pf$Pg$Ph$Pi$Pj$Pk$Pl????????????????????????????????????????????????????$G!$G"$G#$G$$G%$G&$G'$G($G)$G*$G+$G,$G-$G.$G/$G0$G1$G2$G3$G4$G5$G6$G7$G8$G9$G:$G;$G<$G=$G>$G?$G@$GA$GB$GC$GD$GE$GF$GG$GH$GI$GJ$GK$GL$GM$GN$GO$GP$GQ$GR$GS$GT$GU$GV$GW$GX$GY$GZ$G[$G\$G]$G^$G_$G`$Ga$Gb$Gc$Gd$Ge$Gf$Gg$Gh$Gi$Gj$Gk$Gl$Gm$Gn$Go$Gp$Gq$Gr$Gs$Gt$Gu$Gv$Gw$Gx$Gy$Gz??????????????????????????????????????$Q!$Q"$Q#$Q$$Q%$Q&$Q'$Q($Q)$Q*$Q+$Q,$Q-$Q.$Q/$Q0$Q1$Q2$Q3$Q4$Q5$Q6$Q7$Q8$Q9$Q:$Q;$Q<$Q=$Q>$Q?$Q@$QA$QB$QC$QD$QE$QF$QG$QH$QI$QJ$QK$QL$QM$QN$QO$QP$QQ$QR$QS$QT$QU$QV$QW$QX$QY??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????罂亐罂亖罂亗罂亙罂亜罂亝罂亞罂亣罂亪罂亯罂亰罂亱罂亴罂亶罂亷罂亸罂亹罂亼罂亽罂亾罂仈罂仌罂仏罂仐罂仒罂仚罂仛罂仜罂仠罂仢罂仦罂仧罂仩罂仭罂仮罂仯罂仱罂仴罂仸罂仹罂仺罂仼罂仾罂伀罂伂罂伃罂伄罂伅罂伆罂伇罂伈罂伋罂伌罂伒罂伓罂伔罂伕罂伖罂伜罂伝罂伡罂伣罂伨?罂個罂倎罂倐罂們罂倓罂倕罂倖罂倗罂倛罂倝罂倞罂倠罂倢罂倣罂値罂倧罂倫罂倯罂倰罂倱罂倲罂倳罂倴罂倵罂倶罂倷罂倸罂倹罂倻罂倽罂倿罂偀罂偁罂偂罂偄罂偅罂偆罂偉罂偊罂偋罂偍罂偐罂偑罂偒罂偓罂偔罂偖罂偗罂偘罂偙罂偛罂偝罂偞罂偟罂偠罂偡罂偢罂偣罂偤罂偦罂偧罂偨罂偩罂偪罂儉罂儊罂儌罂儍罂儎罂儏罂儐罂儑罂儓罂儔罂儕罂儖罂儗罂儘罂儙罂儚罂儛罂儜罂儝罂儞罂償罂儠罂儢罂儣罂儤罂儥罂儦罂儧罂儨罂儩罂優罂儫罂儬罂儭罂儮罂儯罂儰罂儱罂儲罂儳罂儴罂儵罂儶罂儷罂儸罂儹罂儺罂儻罂儼罂儽罂儾罂兂罂兇罂兊罂兌罂兎罂兏罂児罂兒罂兓罂兗???????????????????????????????????????????????????????????????????罂厐罂厑罂厒罂厓罂厔罂厖罂厗罂厙罂厛罂厜罂厞罂厠罂厡罂厤罂厧罂厪罂厫罂厬罂厭罂厯罂厰罂厱罂厲罂厳罂厴罂厵罂厷罂厸罂厹罂厺罂厼罂厽罂厾罂叀罂參罂叄罂叅罂叆罂叇罂収罂叏罂叐罂叒罂叓罂叕罂叚罂叜罂叝罂叞罂叡罂叢罂叧罂叴罂叺罂叾罂叿罂吀罂吂罂吅罂吇罂吋罂吔罂吘?罂唨罂唩罂唫罂唭罂唲罂唴罂唵罂唶罂唸罂唹罂唺罂唻罂唽罂啀罂啂罂啅罂啇罂啈罂啋罂啌罂啍罂啎罂問罂啑罂啒罂啓罂啔罂啗罂啘罂啙罂啚罂啛罂啝罂啞罂啟罂啠罂啢罂啣罂啨罂啩罂啫罂啯罂啰罂啱罂啲罂啳罂啴罂啹罂啺罂啽罂啿罂喅罂喆罂喌罂喍罂喎罂喐罂喒罂喓罂喕罂喖罂喗罂喚罂喛罂噣罂噥罂噦罂噧罂噭罂噮罂噯罂噰罂噲罂噳罂噴罂噵罂噷罂噸罂噹罂噺罂噽罂噾罂噿罂嚀罂嚁罂嚂罂嚃?????????????????????????????????????????????????????????????????????????????????????????????????????????罂墍罂墎罂墏罂墐罂墑罂墔罂墕罂墖罂増罂墘罂墛罂墜罂墝罂墠罂墡罂墢罂墣罂墤罂墥罂墦罂墧罂墪罂墫罂墬罂墭罂墮罂墯罂墰罂墱罂墲罂墳罂墴罂墵罂墶罂墷罂墸罂墹罂墺罂墻罂墽罂墾罂墿罂壀罂壂罂壃罂壄罂壆罂壇罂壈罂壉罂壊罂壋罂壌罂壍罂壎罂壏罂壐罂壒罂壓罂壔罂壖罂壗罂壘?罂妧罂妬罂妭罂妰罂妱罂妳罂妴罂妵罂妶罂妷罂妸罂妺罂妼罂妽罂妿罂姀罂姁罂姂罂姃罂姄罂姅罂姇罂姈罂姉罂姌罂姍罂姎罂姏罂姕罂姖罂姙罂姛罂姞罂姟罂姠罂姡罂姢罂姤罂姦罂姧罂姩罂姪罂姫罂姭????罂姲罂姳罂姴罂姵罂姶罂姷罂姸罂姺罂姼罂姽罂姾罂娀罂娂罂娊罂娋罂娍罂媭罂媮罂媯罂媰罂媱罂媴罂媶罂媷罂媹罂媺罂媻罂媼罂媽罂媿罂嫀罂嫃罂嫄罂嫅罂嫆罂嫇罂嫈罂嫊?????????罂嫙罂嫚罂嫛罂嫝罂嫞罂嫟罂嫢罂嫤罂嫥罂嫧罂嫨罂嫪罂嫬罂嫭罂嫮罂嫯罂嫰罂嫲罂嫳罂嫴罂嫵罂嫶罂嫷罂嫸罂嫹罂嫺罂嫻罂嫼罂嫽罂嫾???????????????????????????????????????????????????????????????????罂崁罂崄罂崅罂崈罂崉罂崊罂崋罂崌罂崍罂崏罂崐罂崑罂崒罂崓罂崕罂崗罂崘罂崙罂崚罂崜罂崝罂崟罂崠罂崡罂崢罂崣罂崥罂崨罂崪罂崫罂崬罂崯罂崰罂崱罂崲罂崳罂崵罂崶罂崷罂崸罂崹罂崺罂崻罂崼罂崿罂嵀罂嵁罂嵂罂嵃罂嵄罂嵅罂嵆罂嵈罂嵉罂嵍罂嵎罂嵏罂嵐罂嵑罂嵒罂嵓罂嵔罂嵕?罂巰罂巵罂巶罂巸罂巹罂巺罂巻罂巼罂巿罂帀罂帄罂帇罂帉罂帊罂帋罂帍罂帎罂帒罂帓罂帗罂帞罂帟罂帠罂帡罂帢罂帣罂帤罂帥罂帨罂帩罂帪罂師罂帬罂帯罂帰罂帲罂帳罂帴罂帵罂帶罂帹罂帺罂帾罂帿罂幀罂幁罂幃罂幆罂幇罂幈罂幉罂幊罂幋罂幍罂幎罂幏罂幐罂幑罂幒罂幓罂幖罂幗罂幘罂幙罂弨罂弫罂弬罂弮罂弰罂弲罂弳罂弴罂張罂弶罂強罂弸罂弻罂弽罂弾罂弿罂彁罂彂罂彃罂彄罂彅罂彆罂彇罂彈罂彉罂彊罂彋罂彌罂彍罂彎罂彏罂彑罂彔罂彙罂彚罂彛罂彜罂彞罂彟罂彠罂彣罂彥罂彧罂彨罂彫罂彮罂彯罂彲罂彴罂彵罂彶罂彸罂彺罂彽罂彾罂彿罂徃罂徆罂徍?????????????????????????????????????????????????????????????????????罂憖罂憗罂憘罂憙罂憚罂憛罂憜罂憞罂憟罂憠罂憡罂憢罂憣罂憤罂憥罂憦????????????????????????????????????????????????罂拃???罂拕罂拝罂拞罂拠罂拡罂拤罂拪?罂拰罂拲罂拵?罂拹???罂挃罂挄罂挅?罂挊罂挋罂挌罂挍罂挏???罂挔罂挕罂挗罂挘罂挙???罂挩罂挬罂挭罂挮罂挰罂挱罂挳罂挴????罂挻罂挼??????罂捈罂捊罂捑?????罂搫罂搮??罂搱???罂搶????????????????????????????????????????????????????舂舂丠餩痣痨佱佲??倝?翊蚰?痖?????????蛐亅仚仾伀?仴仯????????簪簟疱鹞駇??駝饾瘗鸪馢?蛞艏????亊艚仺仼鸩蛴駜裼仚魻簦瘢?餾魷?駉??饻??馸?馿?癯仯仴?駓駓鸫駈窈?駔?魫駔駔駔艏駖駜竦疰駚蛘鹂?駞饙??馺??駛癀駓駓瘵?魤?舄臬?????餾駅?駝??瘃痧駓駗穸?鸬駔?駑?駚???馿?駕駕?癜馾舻???駂?皓魧??穰丂 ?痄疸魱衄餗餘餙餚餛餜餝餞餟餠魳痂饀饁饂饃饄饅饆饇饉饊饋饌饈魯?魰鹬鹭?疒疬鹱?皤馥皎?鹣鹧鹪魨鸾???鹋?鹑??駊?饗饛???衿??饐饠魩鸠饏餸餻餼魛饍????饚裼裾裨??裾???瘊仚駵?馜鹎瘗瘅稹?鬍穑?餬?痿???蜥瘌?駋鸸?馡癫?駍穹駴?Ez?駏??UP??鹨鹦??????馎瘘馌?籼瘐瘀????虿蜻?舢????鸢舁??駃駌?駠?鹈馡稷餷?餶?瘊??饑駐瘼瘅瘿?饜馸疠?鹕VS??????????疣駘疖疴鸷皙???蜮僒ID枮嬻館餡痼痱????馳???鸨袷廽窀?裉????????瘥瘗瘗瘗瘗瘗?鹩??????窠????鸱饞饝?????????????????馡裼??????????????????????????魴???????馉魷?鸹?馵??駡????????壜?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????饸饹馂??饐鹇饐馣饎??????俙俛俷AB鬍馰???馛馚乣??饡饟?????????餹?????????饘瘳??癍癔??????????????裾????駚??????????鹫???駚皈??瘗?馭駙痫簸痦?????駚?痿虮?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉?饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘???????????????????????????????????????????????????????????????????馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘?駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰?????????????????????????????????????????????????????????????????????????????????????????????????????????駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸?騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢????虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘?????????蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯???????????????????????????????????????????????????????????????????驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜?髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾?????????????????????????????????????????????????????????????????????鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙????????????????????????????????????????????????魛???魟魠魡魢魣魤魥?魧魨魩?魫???魯魰魱?魳魴魵魶魷???魻簟簪簦簸???舁舂舄臬衄舡舢舣????舸舻??????艏艚艟?????裟襞??羧???籼??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????疱疰窈痂痖魳?魴饀饁饂饃饄饅饆饇饉饊饋饌?鹞鹨鹧鹣鹩鹦魨駁穰?皎魤黏馥皙皓駞駟駘疖疬魯鸷甬鹱鹬魫魰鸬鸫鸪鸩鸠馱駖鸸鹂魻?駍?鹄?竦痄疸駈馸駔?穸?馿馾駓駋駊駏瘥馎瘘馌?籼痿瘐瘀簟簪鬍馰馺魱??????????????????????????????????????????????????????????????????????魵魶餾饍魧饗簦????????駑???衤?????ON?駇???????????????????馽駚駂倝倝駚??蛘?ID癀痤??駛舁?舣虮餩蚨蚍蚋蚬蚝蚧蚣蚪蚓虻瘗舢?瘊裼裾裨???馡疝饘瘅?駉裾痿駵???舂馛馚????乣乣蜻??馩?穹馭鹪?駤瘠駃駙?駑瘼馼?皤??????裾?瘊???裼??裨褚蜞駗??騆餬痫?舂嬛嬻崌枮簸痦疴?鹈馢?饙饟饞??饛魩衿鸨鸢????饐??餻?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????駚馽?瘊??餼饑?稹駐瘼駉馢瘅穸駴駛騆瘿??饜穑?瘌???鸠疠?疝鸾竦駏駏駌?駋??鹕VS瘠??魨鹑鹗鹛鹚??????痖馱?魰翊翊?瘭???駔???鹎疬魫鹬鹭魰?駘魯疖甬疴鸷馥魥???????????????????????????????????????馳?饙饚???魰駍鸨袷廽痄??駵裉駖?餬?翊????穹??????馸??馡瘗瘗瘗瘗瘗瘗瘗?仚??蛟亊裾仚丠舂?????窠??鸢?魩?鸱饞饝饠?????????????????????????????????????????????????????????皈皙?????疸衄魱?瘥瘘馎馌虮舣舁UP?桳?寧怽???餗餘餙餚餛餜餝餞餟虿蜥蜮僒ID枮嬻館餡痼痱瘃痧仾伀仺仼魻簪簟簦痨痣佲佱?饀饁饂饃饄饅饆饇饉饊饋饌饈?蜻????舂?俰???????????????????????????????????????????????????褚???????????裼裼裾????籼??????????????鹦???黏??????皎???馤??魴駠?????魳????馉??魷?????????????????????????????????????????????????????饻饾瘅饦饳馩?駈馿馾駂駃痿??痿瘐瘀鹩鹨鹧鹞?鹣饐餻黏魧皓穰皎丠舂瘗?????????????饛??饗馼瘢駞駠駟?鹱鹈鸸鹂馡癀?癫?鸬?鸫衿鸩痂疰疱窈??稷饍餷?餾餶饏?裼裼裨裾衩????????????????????????????????????????馵??駡鹂??????????????????馂?????饐?饐??馣饎?餼?餾?餸餺餽餿?魛俙俛AB俷鬍?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????缶侒線傮線凅線勼線咉線嗴線圀線報線夡線婓線嬻線岓線嶓線庴線忬線愺線戵線掦線擉線旙線曮線栿線楏線橌線欝線汅線涹線滙線濗線烍線燇線狊線◇線Ⅲ線s線ん線ン線線線線線線線線線線線绑線斌線搀線丑線大線刁線扼線敷線阁線贵線后線惑線俭線襟線倔線矿緛缶亖缶亗缶亙缶亜缶亝缶亞缶亣缶亪缶亯缶亰缶亱缶亴缶亶缶亷缶亸缶亹缶亼缶亽缶亾缶仈缶仌缶仏缶仐缶仒缶仚缶仛缶仜缶仠缶仢缶仦缶仧缶仩缶仭缶仮缶仯缶仱缶仴缶仸缶仹缶仺缶仼缶仾缶伀缶伂缶伃缶伄缶伅缶伆缶伇缶伈缶伋缶伌缶伒缶伓缶伔缶伕缶伖缶伜缶伝缶伡缶伣缶伨缶伩缶個缶倎缶倐缶們缶倓缶倕缶倖缶倗缶倛缶倝缶倞缶倠缶倢缶倣缶値缶倧缶倫缶倯缶倰缶倱缶倲缶倳缶倴缶倵缶倶缶倷缶倸缶倹缶倻缶倽缶倿缶偀缶偁缶偂缶偄缶偅缶偆缶偉缶偊缶偋缶偍缶偐缶偑缶偒缶偓缶偔缶偖缶偗缶偘缶偙缶偛缶偝缶偞缶偟缶偠缶偡缶偢缶偣缶偤缶偦缶偧缶偨缶偩缶偪缶儉缶儊缶儌缶儍缶儎缶儏缶儐缶儑缶儓缶儔缶儕缶儖缶儗缶儘缶儙缶儚缶儛缶儜缶儝缶儞缶償缶儠缶儢缶儣缶儤缶儥缶儦缶儧缶儨缶儩缶優缶儫缶儬缶儭缶儮缶儯缶儰缶儱缶儲缶儳缶儴缶儵缶儶缶儷缶儸缶儹缶儺缶儻缶儼缶儽缶儾缶兂缶兇缶兊缶兌缶兎缶兏缶児缶兒缶兓缶兗缶兘缶兙缶兛缶剙缶剚缶剛缶剝缶剟缶剠缶剢缶剣缶剤缶剦缶剨缶剫缶剬缶剭缶剮缶剰缶剱缶剳缶剴缶創缶剶缶剷缶剸缶剹缶剺缶剻缶剼缶剾缶劀缶劃缶劄缶劅缶劆缶劇缶劉缶劊缶劋缶劌缶劍缶劎缶劏缶劑缶劒缶劔缶劕缶劖缶劗缶劘缶劙缶劚缶劜缶劤缶劥缶劦缶劧缶劮缶劯缶劰缶労缶劵缶劶缶劷缶劸缶効缶厐缶厑缶厒缶厓缶厔缶厖缶厗缶厙缶厛缶厜缶厞?  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ????????????#????? ??????L?S???VS??????????????????妱僒ID枮嬻巜塩????????????廽???????????333333?????????????????????????????????#D???????????????????????????????????K??????????????壜??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????俙俛俷AB????!?!!乣??????????????????????????????????????????????l??????????????l???3N???佁??????l???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????E1112綁c廧岎媥擭怑惾巜俙摿挻媫攦攧惻慡宯懓?????J???????q???????????P2????}????A4]???!????n???????????-32?????????,k_???????@3 3;???????????????????????????????????????????????????????????????????<:!!!?????#5????????????|??????S?t?HU????.^M ?&?,??[ah???lwC1p?????????????????????( ??????Hx??{???????$W j'??_?????????m????????弔壞廐搤???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????MMMM,,,,    ???????????????????????????????????????????????????????????E??E??-!%./:;?@^_'"=7B仜m?????????FNG妱倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸???????????????????????????????????????????????????????????????????俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯?偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傢傪傫傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈儉儊儌儍儎儏儐儑儓儔儕儖儗儘儚儝儞???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????}}??c???????K???F+*G佁?????H????????????g>l?????????????>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????,k_1??-2?3??}}p????c]4A|h!nF?&???j^Sa8?U[ ,3:;<=>?@+*?t???????????????????????????????????????????????????????????????????A????JG????????????????ON?.????????????????????倝l??m+IDx??Dw????E3H  ?G?#??M ??!?!!?J乣乣F????'?0????H9???? ????NGQ6??R嬛嬻崌枮佁????5q???????N?? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????M5?(w??L? ?????j,,?s ???VS????????0|? ????a??c?????}?????????????????????????????????????????q??&??廽?? ?h8? ?-|?'?)????S0#333333?EJ仜=E????????????????9????????????????????????????????????????????????????????????3;:??????????????3`??}?????????????????????????K?????????????????????????????????????????????????????P2????^U???@?2-?}3 ??????????????HHp????!n#x?$??]Ak,_/????J?D?????????????????????????????????????????????n??Z????????????????????N??????????鷤`俛AB俷6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????缶侒線傮線凅線勼線咉線嗴線圀線報線夡線婓線嬻線岓線嶓線庴線忬線愺線戵線掦線擉線旙線曮線栿線楏線橌線欝線汅線涹線滙線濗線烍線燇線狊線◇線Ⅲ線s線ん線ン線線線線線線線線線線線绑線斌線搀線丑線大線刁線扼線敷線阁線贵線后線惑線俭線襟線倔線矿緛缶亖缶亗缶亙缶亜缶亝缶亞缶亣缶亪缶亯缶亰缶亱缶亴缶亶缶亷缶亸缶亹缶亼缶亽缶亾缶仈缶仌缶仏缶仐缶仒缶仚缶仛缶仜缶仠缶仢缶仦缶仧缶仩缶仭缶仮缶仯缶仱缶仴缶仸缶仹缶仺缶仼缶仾缶伀缶伂缶伃缶伄缶伅缶伆缶伇缶伈缶伋缶伌缶伒缶伓缶伔缶伕缶伖缶伜缶伝缶伡缶伣缶伨缶伩缶個缶倎缶倐缶們缶倓缶倕缶倖缶倗缶倛缶倝缶倞缶倠缶倢缶倣缶値缶倧缶倫缶倯缶倰缶倱缶倲缶倳缶倴缶倵缶倶缶倷缶倸缶倹缶倻缶倽缶倿缶偀缶偁缶偂缶偄缶偅缶偆缶偉缶偊缶偋缶偍缶偐缶偑缶偒缶偓缶偔缶偖缶偗缶偘缶偙缶偛缶偝缶偞缶偟缶偠缶偡缶偢缶偣缶偤缶偦缶偧缶偨缶偩缶偪缶儉缶儊缶儌缶儍缶儎缶儏缶儐缶儑缶儓缶儔缶儕缶儖缶儗缶儘缶儙缶儚缶儛缶儜缶儝缶儞缶償缶儠缶儢缶儣缶儤缶儥缶儦缶儧缶儨缶儩缶優缶儫缶儬缶儭缶儮缶儯缶儰缶儱缶儲缶儳缶儴缶儵缶儶缶儷缶儸缶儹缶儺缶儻缶儼缶儽缶儾缶兂缶兇缶兊缶兌缶兎缶兏缶児缶兒缶兓缶兗缶兘缶兙缶兛缶剙缶剚缶剛缶剝缶剟缶剠缶剢缶剣缶剤缶剦缶剨缶剫缶剬缶剭缶剮缶剰缶剱缶剳缶剴缶創缶剶缶剷缶剸缶剹缶剺缶剻缶剼缶剾缶劀缶劃缶劄缶劅缶劆缶劇缶劉缶劊缶劋缶劌缶劍缶劎缶劏缶劑缶劒缶劔缶劕缶劖缶劗缶劘缶劙缶劚缶劜缶劤缶劥缶劦缶劧缶劮缶劯缶劰缶労缶劵缶劶缶劷缶劸缶効缶厐缶厑缶厒缶厓缶厔缶厖缶厗缶厙缶厛缶厜缶厞缶厠缶厡缶厤缶厧缶厪缶厫缶厬缶厭缶厯缶厰缶厱缶厲缶厳缶厴缶厵缶厷缶厸缶厹缶厺缶厼缶厽缶厾缶叀缶參缶叄缶叅缶叆缶叇缶収缶叏缶叐缶叒缶叓缶叕缶叚缶叜缶叝缶叞缶叡缶叢缶叧缶叴缶叺缶叾缶叿缶吀缶吂缶吅缶吇缶吋缶吔缶吘缶吙缶唨缶唩缶唫缶唭缶唲缶唴缶唵缶唶缶唸缶唹缶唺缶唻缶唽缶啀缶啂缶啅缶啇缶啈缶啋缶啌缶啍缶啎缶問缶啑缶啒缶啓缶啔缶啗缶啘缶啙缶啚缶啛缶啝缶啞缶啟缶啠缶啢缶啣缶啨缶啩缶啫缶啯缶啰缶啱缶啲缶啳缶啴缶啹缶啺缶啽缶啿缶喅缶喆缶喌缶喍缶喎缶喐缶喒缶喓缶喕缶喖缶喗缶喚缶喛缶噣缶噥缶噦缶噧缶噭缶噮缶噯缶噰缶噲缶噳缶噴缶噵缶噷缶噸缶噹缶噺缶噽缶噾缶噿缶嚀缶嚁缶嚂缶嚃缶嚄缶嚇缶嚈缶嚉缶嚊缶嚋缶嚌缶嚍缶嚐缶嚑缶嚒缶嚔缶嚕缶嚖缶嚗缶嚘缶嚙缶嚚缶嚛缶嚜缶嚝缶嚞缶嚟缶嚠缶嚡缶嚢缶嚤缶嚥缶嚦缶嚧缶嚨缶嚩缶嚪缶嚫缶嚬缶嚭缶嚮缶嚰缶嚱缶嚲缶嚳缶垁缶垇缶垈缶垉缶垊缶垍缶垎?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????缶娂缶娊缶娋缶娍缶媭缶媮缶媯缶媰缶媱缶媴缶媶缶媷缶媹缶媺缶媻缶媼缶媽缶媿缶嫀缶嫃缶嫄缶嫅缶嫆缶嫇缶嫈缶嫊缶嫋缶嫍缶嫎缶嫏缶嫐缶嫑缶嫓缶嫕缶嫗缶嫙缶嫚缶嫛缶嫝缶嫞缶嫟缶嫢缶嫤缶嫥缶嫧缶嫨缶嫪缶嫬缶嫭缶嫮缶嫯缶嫰缶嫲缶嫳缶嫴缶嫵缶嫶缶嫷缶嫸缶嫹缶嫺缶嫻缶嫼缶嫽缶嫾缶嫿缶嬀缶嬁缶寑缶寔缶寕缶寖缶寗缶寘缶寙缶寚缶寛缶寜缶寠缶寢缶寣缶實缶寧缶審缶寪缶寫缶寬缶寭缶寯缶寱缶寲缶寳缶寴缶寵缶寶缶寷缶寽缶対缶尀缶専缶尃缶尅缶將缶專缶尋缶尌缶對缶導缶尐缶尒缶尓缶尗缶尙缶尛缶尞缶尟缶尠缶尡缶尣缶尦缶尨缶尩缶尪?  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????      !"#$%&'()*+,-./0123456?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????E1112厪Z岎媥擭怑惾俙摿挻媫攦攧惻慡宯懓[Y??J??`???qf????P2?X} {?MA4]??!z??n??V??j????-32?xh?v?y,k_?)?'1?@3 3;???????????????????????????????????????????????????????????????????<:????W5???????%??|????S?t?HU?Q??.^M R&?,a?[ahw?&lwC1p?T??????????????????( ?????bHx?d{????$W j'?_????????m??????弔壞廐搤???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????MMMM,,,,    ??????????????????????????????????????????????????????????2E??E??-!%./:;?@^_'"=7B仜m?????????FNG倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸???????????????????????????????????????????????????????????????????俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯?偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傢傪傫傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈儉儊儌儍儎儏儐儑儓儔儕儖儗儘儚儝儞???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????}}??c??????K???F+*G(???N?H????????????g>l?????????????>??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????,k_1?-23??}}{p?wxzc]4A|h!nF?&???j^Sa8?U[ ,3:;<=>1?@+*t???????????????????????????????????????????????????????????????????A????JG????????????????ON?.????????????????????倝l??m+x??DwN??2E3H  GW??M ??J乣F????'%0?Q&bH9??_ ?]????NGQ6?'R嬛儘()y*V5q+M?N?. ^?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????]^_`abM5c(w?def ??hi?j,,Rs ??jkl???p???0|q ??s?a?uc?wxyz}??????????????????????????????????????q&? h8? -|')S0#?EJ仜=EM9???????????????????????????????????????????????????? {????|}3;:<2?N/~桳柍寧怽???E?@F*+G??FQR?俰??????????????????????????????????????????????????????????D?=>???????3`}U???T*???sK????????????????????????????????????????????????????P2????^UQ?1?@2-}3 ??????????????HHpT??V!nWx?$?]Ak,_/XYZJ[?????????????????????????????????????????n??Zno?????N?????6????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????缶亱缶偩缶仯缶儦缶亴缶儫缶儱缶儲缶兌缶剚缶剛缶剝缶剟缶剠缶亶缶剦缶剨缶剫缶剬缶剭缶后緜绑緜斌緜搀緜丑線侒線傮線凅緛Ⅲ緜矿線忬線愺線線線俭緛咉緛燇緛緜緝缶儊缶儌缶儍缶儎缶儏缶儐缶儑缶儓缶儔缶儕缶儖缶儗缶亾缶仜缶仾缶伜缶倧缶倳缶倿缶儘缶儙缶儚缶儛?缶儜缶儝缶儞缶償缶伆缶倰缶倻缶儣缶儤缶儥缶伣缶倲缶偍缶偐缶偓缶儧缶儨缶儩缶優缶緛狊緝狊緝◇緝Ⅲ緝s緝ん線岓線大緛侒緜狊緝緝緝緜緝緝緝緝緝緜咉緜愺緝緝绑緝斌緝搀緝丑緝大緝刁緝敷緝阁緝贵緝后緝惑緝俭緝襟緝倔緛婓緛庴緜嗴緝矿緞缶伇缶剢缶剣缶剤缶剮缶剰缶剱缶剳缶剴缶創缶剶缶剷缶剸缶剹缶剺缶剻缶剼缶剾缶劀缶劃缶劄缶劅缶搀緛勼緛愺緛栿緛大緜岓緜嶓緜s緞狊緞◇緞Ⅲ緞s緞ん緞ン緞緞緞緞緞緞緞緞緞绑線嶓線绑線刁緛報緛烍緛緛緛敷緛阁緛俭緜侒緜婓緜戵緜涹緜ン緜緛緜大緜???????????????????????????????????????????????????????????????????缶偠缶偡缶偢缶偣缶偤缶偦缶偧缶偨缶勼線咉線嗴線圀線報線夡線婓線嬻線戵線掦線擉線旙線曮線栿線楏線橌線汅線涹線滙線濗線烍線燇線狊線◇線Ⅲ線s線ん線ン線線線線線線線扼線敷線襟線倔線矿緛缶亗缶亞缶亣缶亯缶亼缶亽缶仒缶仚缶伒缶伓缶倓缶倛缶斌線阁線?缶亙缶仠缶仭缶仱缶仴缶仸缶仹缶仼缶伖缶們缶倝缶値缶倱缶倽缶儠缶儢缶仛缶伩缶個缶偀缶劒缶劔缶庴線欝線贵緛楏緛緛緛搀緛丑緛惑緛倔緜傮緜圀緜嬻緜栿緜橌緜◇緜Ⅲ緜ん緜緜緜緜緛忬緛旙緜楏緜欝緜汅線線丑緛曮緛濗緞斌緞搀緞丑緞大緞刁緞扼緞敷緞阁緞贵緞后緞惑緞俭緞襟緞倔緞矿緟缶厑缶厒缶厓缶厔缶厖缶厗缶厙缶厛缶厜缶厞??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????隮隯隱霩霫霬霮霯霱霳霴霘腙鞏隵隷霵霶霷霺霻霼霽霿鞐靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑隸霌毂隺腚靯胗觳霙腱靔靕靰鞓隩靱隻靗靘靚靜霚靝靲朐隿靟靣腠靤敫隌隓隢牍飕胝靦靧雝飙斐胫鞕靨靪鞇雞靵齑腩雂霐靷隲隑靸靹靺靻腼靽雟雃膪鞖腽鞗雱虢鞙鞚胱靫靬腭腧靾雡鞛塍電鞜鞈鞉媵鞝靿靭毵牒臁靮鞀膈膦胴胭鞁離毹膂雲鞂雼難欤飚欷殳彀膑雴鞃雤鞊霛欹歃脍歆滕膣雈雽雿搿歙霂飑飒飓險隫隬隭臌朦霡霢霣霤霥霦霧霨階隴雊雋雐雑雓雔雖雗雘雙雚雛雜雥雦雧雫雬雭雮雰鞄鞆雵雸雺隒霃霅霊霋隕霑霒霔霕霗隖隚霝霟霠擘耄毪毳毽氅氇氆氍氕氘氙際氚氡氩氤氪氲攵敕牖爰隝隞隟隠隡刖肟肜隣隤隥隦隨肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍脎胲胼朕脒豚脶脞脬脘鞌鞎脲腈腌腓腴斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳????????????朕?????隤?肟?????隓?雝???????????????????雿??????????????????????????????????觳觳觳觳觳觳?????????????????????????????????朕朐???????????????????????????????????隌???????雴????????????????彀?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????際?際????????????肭??????????????????????????????肷???????????????????隞????膪??????????????膪???觳牍??????????膪?胩??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????焐臌朦霡霢霣霤霥霦霧霨??臌朦霡霢霣霤霥霦霧霨????????霩??胧??????????氚??氡氩?敫?雊雋雐雑雓雔雖雗雜雘?雙雚雛氪?際際????擘肷虢爰耄????氕???????胝胗???肱?肴電雸霂?雺雽雿雵?雲雦氙??霚霙齑雲???胲???隕?腽?????霕?肼隖?????霌霃旆霅於?霊?雫鞄雬雲雮????雰???隫險隸雃雂隴隷?霫霬???胭胴??胩烀炷肽胙觳隤觳炜???????????????????????????????????????????????????????????????????炖炀??肓????朕腱????????????塍??????雝?胱?腠欹欹斐膑?膣??臁?毂腩隢霟脎?脶?脲?難?雞靷雤腼離???膪腭靲靯雱?????????????????????脬隦??????腠鞏腧膈??鞛??????霛?脒鞕腙雟毹脞??雂?????????鞖?氅????????????隝隟隞??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????氡氡氡氡隢隢隢隢隸隸隸隸隣隣隣隣?隝隝隝??????????????????????????????????????????????????????????焐??焐臌朦霡霢霣霤霥霦霧霨????鞏???????????靀?靕靝?鞖?????????焓?胄???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????肭肭?????????????????????????????????????????????????????????氤????????電電?雿霋氘?隑???雥雧隬?階???隌???靟靑靐靣?????隯鞈鞉隭?焯??????歃??????靻靘膪?????????????炻??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????隸雃雂隴隷階斓?雊雋雐雑雓雔雖雗雘雙雚雛?霌於霅霃?旆霋?霂?雺電電雸雿雽雱???雰雥?雦鞄雫隑雧雲齑霙霚氙塍腼胲腽靟?脶???雟險隫腩雝靷旒毹?斐欹雞脎霟脲觳炀炜炖炝炻胩烀炷靑靐肭?胱隬???????????????????????????????????????????????????????????????????炫????敫氪雿擘靣??????霔?難???????????毂???????????????????欹飚膣??膪??鞖鞎?腧??烊腭????霩臌朦霡霢霣霤霥霦霧焐觳焯隣隤隝隞隟?焖?朕?肷肽?隢刖胩隦??隡隯???煳肟胪??焓????脞?霊腚?鞏??欷難?腠鞓雵?鞐??肟肟隞?隤胍肜?隝??隟??離靦靔?胧?靧隮?????????腱氆虢???毵耄氘氅????牍氲際??氡敕霘?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????媵?飚欹肜隤?肟氩?敕肱??隢腱?毹脬腭??隓毵?肴毪胙隨??氙???隕雟脲脲?鞚脎????鞏霝?霋隖???????腴隡隷塍?雧腙腙?膈???靷??雭肼雰隑雫雬雧??雥?雦??雸電?????????????????????????????????????????虢爰?牖?雧脶???險??隦?腼旒胧?腙?腈塍?脞?脘????雝霔腚朕觳觳朊觳觳觳觳?隿胪煳?靗刖隿隱隯??????????氘????氕毽??旖??????????????????????????????????????????????????????雿?????隫隭隬?觳炜炀炖???腓????????臌朦霡霢霣霤霥霦霧焐胄?????????胴胭靃靄靚靜靟靐靑靣霬霫霯霮?雊雋雐雑雓雔雖雗雘雙雚雛雜?焓靦靧??隮??????????????????????????????????????????????肟??????????????????朐隝隞??炝?炻??????????????旆霐??電雼?????雺?????????????階???????隌?????????????????????????????????????????????????????胝胗肽????腩斐欹膣?胩胍?胩烀炷?於霅霌?霃際氡電雿雽霂雺隱隯觳隣????????????耄??擘腠腠雱???鞄?胲腽朕腧?脒?雲?齑氅霚隴雃隸雂隺??氪??敫?際氲朐隝隟隞?????????????????????????????????????????????腽?霗?毳鞇???????????????????際?際牍????氩?牒?氚????氤????肭靔????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????缶亱缶偩缶仯缶儦缶亴缶儫缶儱缶儲缶兌缶剚缶剛缶剝缶剟缶剠缶亶缶剦缶剨缶剫缶剬缶剭缶后緜绑緜斌緜搀緜丑線侒線傮線凅緛Ⅲ緜矿線忬線愺線線線俭緛咉緛燇緛緜緝缶儊缶儌缶儍缶儎缶儏缶儐缶儑缶儓缶儔缶儕缶儖缶儗缶亾缶仜缶仾缶伜缶倧缶倳缶倿缶儘缶儙缶儚缶儛?缶儜缶儝缶儞缶償缶伆缶倰缶倻缶儣缶儤缶儥缶伣缶倲缶偍缶偐缶偓缶儧缶儨缶儩缶優缶緛狊緝狊緝◇緝Ⅲ緝s緝ん線岓線大緛侒緜狊緝緝緝緜緝緝緝緝緝緜咉緜愺緝緝绑緝斌緝搀緝丑緝大緝刁緝敷緝阁緝贵緝后緝惑緝俭緝襟緝倔緛婓緛庴緜嗴緝矿緞缶伇缶剢缶剣缶剤缶剮缶剰缶剱缶剳缶剴缶創缶剶缶剷缶剸缶剹缶剺缶剻缶剼缶剾缶劀缶劃缶劄缶劅缶搀緛勼緛愺緛栿緛大緜岓緜嶓緜s緞狊緞◇緞Ⅲ緞s緞ん緞ン緞緞緞緞緞緞緞緞緞绑線嶓線绑線刁緛報緛烍緛緛緛敷緛阁緛俭緜侒緜婓緜戵緜涹緜ン緜緛緜大緜???????????????????????????????????????????????????????????????????缶偠缶偡缶偢缶偣缶偤缶偦缶偧缶偨缶勼線咉線嗴線圀線報線夡線婓線嬻線戵線掦線擉線旙線曮線栿線楏線橌線汅線涹線滙線濗線烍線燇線狊線◇線Ⅲ線s線ん線ン線線線線線線線扼線敷線襟線倔線矿緛缶亗缶亞缶亣缶亯缶亼缶亽缶仒缶仚缶伒缶伓缶倓缶倛缶斌線阁線?缶亙缶仠缶仭缶仱缶仴缶仸缶仹缶仼缶伖缶們缶倝缶値缶倱缶倽缶儠缶儢缶仛缶伩缶個缶偀缶劒缶劔缶庴線欝線贵緛楏緛緛緛搀緛丑緛惑緛倔緜傮緜圀緜嬻緜栿緜橌緜◇緜Ⅲ緜ん緜緜緜緜緛忬緛旙緜楏緜欝緜汅線線丑緛曮緛濗緞斌緞搀緞丑緞大緞刁緞扼緞敷緞阁緞贵緞后緞惑緞俭緞襟緞倔緞矿緟缶厑缶厒缶厓缶厔缶厖缶厗缶厙缶厛缶厜缶厞缶厠缶厡缶厤缶嚧缶嚨缶嚩缶嚪缶嚫缶嚬缶嚭缶嚮缶嚰缶嚱缶嚲缶嚳缶垁缶垇缶垈缶垉缶垊缶垍缶垎缶厧缶厪缶厫缶厬缶厭缶厯缶厰缶厱缶厲缶厳缶厴缶厵缶厷缶厸缶厹缶厺缶厼缶厽缶厾缶叀缶參缶叄缶叅缶叆???????????????????????????????????????????????????????????????????缶叇缶収缶叏缶叐缶叒缶叓缶叕缶叚缶叜缶叝缶叞缶叡缶叢缶叧缶叴缶叺缶叾缶叿缶吀缶吂缶吅缶吇缶吋缶吔缶吘缶吙缶唨缶唩缶唫缶唭缶唲缶唴缶唵缶唶缶唸缶唹缶唺缶唻缶唽缶啀缶啂缶啅缶啇缶啈缶啋缶啌缶啍缶啎缶問缶啑缶啒缶啓缶啔缶啗缶啘缶啙缶啚缶啛缶啝缶啞缶啟缶啠缶啢?缶啣缶啨缶啩缶啫缶啯缶啰缶啱缶啲缶啳缶啴缶啹缶啺缶啽缶啿缶喅缶喆缶喌缶喍缶喎缶喐缶喒缶喓缶喕缶喖缶喗缶喚缶喛缶噣缶噥缶噦缶噧缶噭缶噮缶噯缶噰缶噲缶噳缶噴缶噵缶噷缶噸缶噹缶噺缶噽缶噾缶噿缶嚀缶嚁缶嚂缶嚃缶嚄缶嚇缶嚈缶嚉缶嚊缶嚋缶嚌缶嚍缶嚐缶嚑缶嚒缶嚔缶嚕缶嚖缶嚗缶嚘缶嚙缶嚚缶嚛缶嚜缶嚝缶嚞缶嚟缶嚠缶嚡缶嚢缶嚤缶嚥缶嚦缶娂缶娊缶娋缶娍缶媭缶媮缶媯缶媰缶媱缶媴缶媶缶媷缶媹缶媺缶媻缶媼缶媽缶媿缶嫀缶嫃缶嫄缶嫅缶嫆缶嫇缶嫈缶嫊缶嫋缶嫍缶嫎缶嫏缶嫐缶嫑缶嫓缶嫕缶嫗缶嫙缶嫚缶嫛缶嫝缶嫞缶嫟缶嫢缶嫤缶嫥缶嫧缶嫨???????????????????????????????????????????????????????????????????缶嫪缶嫬缶嫭缶嫮缶嫯缶嫰缶嫲缶嫳缶嫴缶嫵缶嫶缶嫷缶嫸缶嫹缶嫺缶嫻缶嫼缶嫽缶嫾缶嫿缶嬀缶嬁缶寑缶寔缶寕缶寖缶寗缶寘缶寙缶寚缶寛缶寜缶寠缶寢缶寣缶實缶寧缶審缶寪缶寫缶寬缶寭缶寯缶寱缶寲缶寳缶寴缶寵缶寶缶寷缶寽缶対缶尀缶専缶尃缶尅缶將缶專缶尋缶尌缶對缶導缶尐?缶尒缶尓缶尗缶尙缶尛缶尞缶尟缶尠缶尡缶尣缶尦缶尨缶尩缶尪???????????????????????????????????????????????????????????????????????????????????????????????????????????????????隮隯隱霩霫霬霮霯霱霳霴霘腙鞏隵隷霵霶霷霺霻霼霽霿鞐靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑隸霌毂隺腚靯胗觳霙腱靔靕靰鞓隩靱隻靗靘靚靜霚靝靲朐隿靟靣腠靤敫隌隓隢牍飕胝靦靧雝飙斐胫鞕靨靪鞇雞靵齑腩雂霐靷隲隑靸靹靺靻腼靽雟雃膪鞖腽鞗雱虢鞙鞚胱靫靬腭腧靾雡鞛塍電鞜鞈鞉媵鞝靿靭毵牒臁靮鞀膈膦胴胭鞁離毹膂雲鞂雼難欤飚欷殳彀膑雴鞃雤鞊霛欹歃脍歆滕膣雈雽雿搿歙霂飑飒飓險隫隬隭臌朦霡霢霣霤霥霦霧霨階隴雊雋雐雑雓雔雖雗雘雙雚雛雜雥雦雧雫雬雭雮雰鞄鞆雵雸雺隒霃霅霊霋隕霑霒霔霕霗隖隚霝霟霠擘耄毪毳毽氅氇氆氍氕氘氙際氚氡氩氤氪氲攵敕牖爰隝隞隟隠隡刖肟肜隣隤隥隦隨肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍脎胲胼朕脒豚脶脞脬脘鞌鞎脲腈腌腓腴斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額顎顏顐顑顒顓顔顕顖顗願顙顚顛?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????焐臌朦霡霢霣霤霥霦霧霨??臌朦霡霢霣霤霥霦霧霨韄??????韃霩??胧????????祢祓氚頒?氡氩?敫?雊雋雐雑雓雔雖雗雜雘?雙雚雛氪磬際碥祺???擘頜虢爰耄鞞韼韻眦氕眭????碜碡胝胗碣?砟肱祜肴電雸霂顅雺雽鞺雵?雲雦氙煅韏霚霙齑雲?韺?胲鞹砬?隕?腽??磔祉?霕?肼隖鞤????霌霃旆霅於韤霊顀雫鞄雬雲雮?鞷鞡?雰鞵?鞸隫險隸雃雂隴隷?霫霬顎?題胭胴韆韅顖烀炷肽胙觳隤觳炜???????????????????????????????????????????????????????????????????炖炀眈眇肓????祛腱磉???????顊??盱塍?韋?砩??雝?胱?腠欹欹斐膑?膣扈?臁?毂腩隢霟脎扉脶?脲禅難?雞靷雤腼離鞶?顋膪腭靲靯雱?祀硖??????????????????脬隦?????禊腠鞏腧膈?禧鞛??頝頠?頡霛?脒鞕腙雟毹脞韒?雂??韲??????鞖?氅???韐?韔??????隝隟隞??????????????????????????????????????????????????????????????????????????????????????????????????????????????????磔磔磔磔????????????????????????氡氡氡氡隢隢隢隢隸隸隸隸隣隣隣隣?隝隝隝?????????????????????????????????????????????????????????顗焐??焐臌朦霡霢霣霤霥霦霧霨????鞏???????????靀?靕靝?鞖?????????焓?胄鞾??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????肭肭?????????????????????????????????????????????????????????氤????????電電?雿霋氘?隑???雥雧隬?階砑??隌???靟靑靐靣額???戾隯鞈鞉隭?焯??????歃??????靻靘膪?????????????炻??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????隸雃雂隴隷階斓砑雊雋雐雑雓雔雖雗雘雙雚雛?霌於霅霃韤旆霋?霂?雺電電雸鞺雽雱?鞶鞷雰雥鞹雦鞄雫隑雧雲齑霙霚氙塍腼胲腽靟?脶???雟險隫腩雝靷旒毹?斐欹雞脎霟脲觳炀炜炖炝炻顖烀炷靑靐肭盱胱隬???????????????????????????????????????????????????????????????????炫????敫氪雿擘靣??????霔?難???????????毂???????????????????欹飚膣??膪??鞖鞎韀腧??烊腭戾??顗霩臌朦霡霢霣霤霥霦霧焐觳焯隣隤隝隞隟頂焖眍祛?頜肽?隢刖胩隦?盹隡隯眇眈?煳肟胪?眚焓????脞顊霊腚?鞏扈顋欷難禊腠鞓雵韨鞐??祧肟頰?祠胍肜?隝??隟??離靦靔?胧題靧隮?韂?韁額顎鞸顏祉腱氆虢眦韻顐毵耄氘氅韏煅韮?牍氲際?顓氡敕霘祯????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????媵?飚欹肜祠祯祧氩祺敕肱禅禊隢腱禚毹脬腭?禧禳毵鞞肴毪胙隨??氙鞡鞢?隕雟脲脲扉鞚脎??鞤鞥鞏霝鞦霋隖???鞪???腴隡隷塍鞬雧腙腙?膈?鞰?靷?鞳雭肼雰隑雫雬雧?鞶雥鞷雦鞸鞹雸電??????????????????????????????????????韊韋韌虢爰韍牖韎雧脶韏韐韑險?韓隦韔腼旒胧?腙韖腈塍韗脞韘脘韙韚韛韜雝霔腚頎韞顈朊韟韠韡韢?隿胪煳?靗刖隿隱隯韨韮韯韰韱韲韴韷煅韸氘韹韺韻韼氕毽韽韾旖響????????????????????????????????????????????????????顅鞺????鞻隫隭隬鞼觳炜炀炖顗?戾腓鞽???????臌朦霡霢霣霤霥霦霧焐胄鞾鞿韀韁韂韃韄韅韆胴胭靃靄靚靜靟靐靑靣霬霫霯霮?雊雋雐雑雓雔雖雗雘雙雚雛雜?焓靦靧韈韉隮??????????????????????????????????????????????肟頁????頂??????頋須????朐隝隞?恚炝恧炻恁?愍恣悫愆???懋???懑旆霐肀聿電雼沓泶淼矶祆雺矸?砀??砘砑祀顏砭砜砝砹階??砻?砟砣鞰隌砥????????????????????????????????????????????????????胝胗肽????腩斐欹膣扈胩胍?顖烀炷韤於霅霌頔霃際氡電雿雽霂雺隱隯觳隣????????????耄??擘腠腠雱祀??鞄祉胲腽祛腧?脒戆雲?齑氅霚隴雃隸雂隺砣祜氪祓祚敫祢際氲怼隝隟隞?????????????????????????????????????????砩硎硭硖腽?霗?毳鞇砦硐硇硌鞨鞩硪碛碓碚碇??碣碲碹???碥礓磙牍?磉磬磲氩?牒礅氚???礞氤礴龛黻黹肭靔????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????