diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-05-16 00:03:15 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-05-16 00:03:15 +0000 |
commit | 66175fa825828d3a012c34777fd9e7916b7aa10b (patch) | |
tree | ca5f75b63ac49de0183f88d90a0de25b025743cf | |
parent | Update. (diff) | |
download | glibc-66175fa825828d3a012c34777fd9e7916b7aa10b.tar.gz glibc-66175fa825828d3a012c34777fd9e7916b7aa10b.tar.bz2 glibc-66175fa825828d3a012c34777fd9e7916b7aa10b.zip |
Update.
* iconv/loop.c: Let user add code to use and set paramaters.
* iconvdata/iso-2022-kr.c: Correct to-loop.
* iconvdata/ksc5601.h (ksc5601_to_ucs4): Use correct value to find
hanja.
* iconvdata/TESTS: Add ISO-2022-KR test.
* iconvdata/testdata/ISO-2022-KR: New file.
* wcsmbs/btowc.c: Likewise.
* wcsmbs/mbrtowcs.c: Likewise.
* wcsmbs/mbsnrtowcs.c: Likewise.
* wcsmbs/mbsrtowcs.c: Likewise.
* wcsmbs/wcrtomb.c: Likewise.
* wcsmbs/wcsnrtombs.c: Likewise.
* wcsmbs/wcsrtombs.c: Likewise.
* wcsmbs/wctob.c: Likewise.
-rw-r--r-- | ChangeLog | 18 | ||||
-rw-r--r-- | iconv/loop.c | 16 | ||||
-rw-r--r-- | iconvdata/TESTS | 1 | ||||
-rw-r--r-- | iconvdata/iso-2022-kr.c | 146 | ||||
-rw-r--r-- | iconvdata/ksc5601.h | 2 | ||||
-rw-r--r-- | iconvdata/testdata/ISO-2022-KR | 552 | ||||
-rw-r--r-- | wcsmbs/btowc.c | 2 | ||||
-rw-r--r-- | wcsmbs/mbrtowc.c | 2 | ||||
-rw-r--r-- | wcsmbs/mbsnrtowcs.c | 2 | ||||
-rw-r--r-- | wcsmbs/mbsrtowcs.c | 2 | ||||
-rw-r--r-- | wcsmbs/wcrtomb.c | 2 | ||||
-rw-r--r-- | wcsmbs/wcsnrtombs.c | 2 | ||||
-rw-r--r-- | wcsmbs/wcsrtombs.c | 2 | ||||
-rw-r--r-- | wcsmbs/wctob.c | 2 |
14 files changed, 664 insertions, 87 deletions
@@ -1,14 +1,32 @@ 1998-05-15 Ulrich Drepper <drepper@cygnus.com> + * iconv/loop.c: Let user add code to use and set paramaters. + + * iconvdata/iso-2022-kr.c: Correct to-loop. + * iconvdata/iso-2022-kr.c (PREPARE_LOOP): Use correct variable to point to output buffer. + * iconvdata/ksc5601.h (ksc5601_to_ucs4): Use correct value to find + hanja. + + * iconvdata/TESTS: Add ISO-2022-KR test. + * iconvdata/testdata/ISO-2022-KR: New file. + 1998-05-15 21:07 Ulrich Drepper <drepper@cygnus.com> * iconv/gconv.h (gconv_step_data): Add new fields invocation_counter and internal_use. * iconv/gconv_open.c (__gconv_open): Initialize invocation_counter and internal_use. + * wcsmbs/btowc.c: Likewise. + * wcsmbs/mbrtowcs.c: Likewise. + * wcsmbs/mbsnrtowcs.c: Likewise. + * wcsmbs/mbsrtowcs.c: Likewise. + * wcsmbs/wcrtomb.c: Likewise. + * wcsmbs/wcsnrtombs.c: Likewise. + * wcsmbs/wcsrtombs.c: Likewise. + * wcsmbs/wctob.c: Likewise. * iconv/skeleton.c: Increment invocation_counter. * iconvdata/iso-2022-kr.c: When used in iconv() emit designator sequence first. diff --git a/iconv/loop.c b/iconv/loop.c index f8188873dc..596f8a6441 100644 --- a/iconv/loop.c +++ b/iconv/loop.c @@ -44,7 +44,10 @@ BODY this is supposed to expand to the body of the loop. The user must provide this. - EXTRA_LOOP_DECLS Extra arguments passed from converion loop call. + EXTRA_LOOP_DECLS extra arguments passed from converion loop call. + + INIT_PARAMS code to define and initialize variables from params. + UPDATE_PARAMS code to store result in params. */ #include <gconv.h> @@ -134,6 +137,10 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend, size_t min_out_rounds = (outend - outptr) / MAX_NEEDED_OUTPUT; size_t min_rounds = MIN (min_in_rounds, min_out_rounds); +#ifdef INIT_PARAMS + INIT_PARAMS; +#endif + #undef NEED_LENGTH_TEST #define NEED_LENGTH_TEST 0 while (min_rounds-- > 0) @@ -195,7 +202,7 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend, /* Here comes the body the user provides. It can stop with RESULT set to GCONV_INCOMPLETE_INPUT (if the size of the input characters vary in size), GCONV_ILLEGAL_INPUT, or - GCONV_FULL_OUTPUT (if the output characters vary in size. */ + GCONV_FULL_OUTPUT (if the output characters vary in size). */ BODY /* If necessary count the successful conversion. */ @@ -216,6 +223,9 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend, /* Update the pointers pointed to by the parameters. */ *inptrp = inptr; *outptrp = outptr; +#ifdef UPDATE_PARAMS + UPDATE_PARAMS; +#endif return result; } @@ -232,3 +242,5 @@ LOOPFCT (const unsigned char **inptrp, const unsigned char *inend, #undef BODY #undef LOOPFCT #undef EXTRA_LOOP_DECLS +#undef INIT_PARAMS +#undef UPDATE_PARAMS diff --git a/iconvdata/TESTS b/iconvdata/TESTS index fa4aea69b5..e8a586cd2d 100644 --- a/iconvdata/TESTS +++ b/iconvdata/TESTS @@ -73,3 +73,4 @@ CP1254 CP1254 Y UTF8 CP1255 CP1255 Y UTF8 CP1256 CP1256 Y UTF8 CP1257 CP1257 Y UTF8 +ISO-2022-KR ISO-2022-KR Y UTF8 diff --git a/iconvdata/iso-2022-kr.c b/iconvdata/iso-2022-kr.c index 166fa15072..6746f9c2ac 100644 --- a/iconvdata/iso-2022-kr.c +++ b/iconvdata/iso-2022-kr.c @@ -44,7 +44,7 @@ #define MAX_NEEDED_TO 4 #define PREPARE_LOOP \ int save_set; \ - int set = data->statep->count; \ + int *setp = &data->statep->count; \ if (!FROM_DIRECTION && !data->internal_use && data->invocation_counter == 0)\ { \ /* Emit the designator sequence. */ \ @@ -56,7 +56,7 @@ *outbuf++ = ')'; \ *outbuf++ = 'C'; \ } -#define EXTRA_LOOP_ARGS , set +#define EXTRA_LOOP_ARGS , setp /* The COUNT element of the state keeps track of the currently selected @@ -72,27 +72,27 @@ enum the output state to the initial state. This has to be done during the flushing. */ #define EMIT_SHIFT_TO_INIT \ - if (data->statep->count != 0) \ + if (data->statep->count != ASCII_set) \ { \ - if (step->data == &from_object) \ + if (FROM_DIRECTION) \ /* It's easy, we don't have to emit anything, we just reset the \ state for the input. */ \ - data->statep->count = 0; \ + data->statep->count = ASCII_set; \ else \ { \ char *outbuf = data->outbuf; \ \ /* We are not in the initial state. To switch back we have \ - to emit `SO'. */ \ + to emit `SI'. */ \ if (outbuf == data->outbufend) \ /* We don't have enough room in the output buffer. */ \ status = GCONV_FULL_OUTPUT; \ else \ { \ /* Write out the shift sequence. */ \ - *outbuf++ = SO; \ + *outbuf++ = SI; \ data->outbuf = outbuf; \ - data->statep->count = 0; \ + data->statep->count = ASCII_set; \ } \ } \ } @@ -102,9 +102,9 @@ enum and retore the state. */ #define SAVE_RESET_STATE(Save) \ if (Save) \ - save_set = set; \ + save_set = *setp; \ else \ - set = save_set + *setp = save_set /* First define the conversion function from ISO-2022-JP to UCS4. */ @@ -127,14 +127,14 @@ enum if (ch == ESC) \ { \ /* We don't really have to handle escape sequences since all the \ - switching is done using the SI and SO bytes. Butwe have to \ + switching is done using the SI and SO bytes. But we have to \ recognize `Esc $ ) C' since this is a kind of flag for this \ encoding. We simply ignore it. */ \ if (inptr + 1 > inend \ || (inptr[1] == '$' \ && (inptr + 2 > inend \ || (inptr[2] == ')' && inptr + 3 > inend)))) \ - \ + \ { \ result = GCONV_EMPTY_INPUT; \ break; \ @@ -146,14 +146,14 @@ enum continue; \ } \ } \ - else if (ch == SI) \ + else if (ch == SO) \ { \ /* Switch to use KSC. */ \ ++inptr; \ set = KSC5601_set; \ continue; \ } \ - else if (ch == SO) \ + else if (ch == SI) \ { \ /* Switch to use ASCII. */ \ ++inptr; \ @@ -161,9 +161,16 @@ enum continue; \ } \ \ - if (set == ASCII_set || ch < 0x21 || ch == 0x7f) \ - /* Almost done, just advance the input pointer. */ \ - ++inptr; \ + if (set == ASCII_set) \ + { \ + if (ch >= 0x80) \ + { \ + result = GCONV_ILLEGAL_INPUT; \ + break; \ + } \ + /* Almost done, just advance the input pointer. */ \ + ++inptr; \ + } \ else \ { \ assert (set == KSC5601_set); \ @@ -186,7 +193,9 @@ enum \ *((uint32_t *) outptr)++ = ch; \ } -#define EXTRA_LOOP_DECLS , int set +#define EXTRA_LOOP_DECLS , int *setp +#define INIT_PARAMS int set = *setp +#define UPDATE_PARAMS *setp = set #include <iconv/loop.c> @@ -197,97 +206,66 @@ enum #define LOOPFCT TO_LOOP #define BODY \ { \ - unsigned char ch; \ + uint32_t ch; \ size_t written = 0; \ \ ch = *((uint32_t *) inptr); \ \ /* First see whether we can write the character using the currently \ selected character set. */ \ - if (set == ASCII_set || (ch >= 0x01 && (ch < 0x21 || ch == 0x7f))) \ + if (ch < 0x80) \ { \ - /* Please note that the NUL byte is *not* matched if we are not \ - currently using the ASCII charset. This is because we must \ - switch to the initial state whenever a NUL byte is written. */ \ - if (ch <= 0x7f) \ + if (set != ASCII_set) \ { \ - *outptr++ = ch; \ - written = 1; \ + *outptr++ = SI; \ + set = ASCII_set; \ + if (NEED_LENGTH_TEST && outptr == outend) \ + { \ + result = GCONV_FULL_OUTPUT; \ + break; \ + } \ } \ + \ + *outptr++ = ch; \ + written = 1; \ } \ else \ { \ - assert (set == KSC5601_set); \ + char buf[2]; \ \ - written = ucs4_to_ksc5601 (ch, outptr, \ - (NEED_LENGTH_TEST ? outend - outptr : 2)); \ + written = ucs4_to_ksc5601 (ch, buf, 2); \ \ - if (NEED_LENGTH_TEST && written == 0) \ + if (written == UNKNOWN_10646_CHAR) \ { \ - result = GCONV_FULL_OUTPUT; \ + /* Illegal character. */ \ + result = GCONV_ILLEGAL_INPUT; \ break; \ } \ - if (written == UNKNOWN_10646_CHAR) \ - { \ - /* Either this is an unknown character or we have to switch \ - the currently selected character set. The character sets \ - do not code entirely separate parts of ISO 10646 and \ - therefore there is no single correct result. If we choose \ - the character set to use wrong we might be end up with \ - using yet another character set for the next character \ - though the current and the next could be encoded with one \ - character set. We leave this kind of optimization for \ - later and now simply use a fixed order in which we test for \ - availability */ \ - \ - if (ch <= 0x7f) \ - { \ - /* We must encode using ASCII. First write out the \ - escape sequence. */ \ - *outptr++ = SO; \ - set = ASCII_set; \ - \ - if (NEED_LENGTH_TEST && outptr == outend) \ - { \ - result = GCONV_FULL_OUTPUT; \ - break; \ - } \ - \ - *outptr++ = ch; \ - } \ - else \ - { \ - char buf[2]; \ + assert (written == 2); \ \ - written = ucs4_to_ksc5601 (ch, buf, 2); \ - if (written != UNKNOWN_10646_CHAR) \ - { \ - /* We use KSC 5601. */ \ - *outptr++ = SI; \ - set = KSC5601_set; \ - \ - if (NEED_LENGTH_TEST && outptr + 2 > outend) \ - { \ - result = GCONV_FULL_OUTPUT; \ - break; \ - } \ + /* We use KSC 5601. */ \ + if (set != KSC5601_set) \ + { \ + *outptr++ = SO; \ + set = KSC5601_set; \ + } \ \ - *outptr++ = buf[0]; \ - *outptr++ = buf[1]; \ - } \ - else \ - { \ - result = GCONV_ILLEGAL_INPUT; \ - break; \ - } \ - } \ + if (NEED_LENGTH_TEST && outptr + 2 > outend) \ + { \ + result = GCONV_FULL_OUTPUT; \ + break; \ } \ + \ + *outptr++ = buf[0]; \ + *outptr++ = buf[1]; \ } \ \ /* Now that we wrote the output increment the input pointer. */ \ inptr += 4; \ } -#define EXTRA_LOOP_DECLS , int set +#define EXTRA_LOOP_DECLS , int *setp +#define INIT_PARAMS int set = *setp +#define UPDATE_PARAMS *setp = set #include <iconv/loop.c> diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h index 0e77c76b96..0b10dcd6b3 100644 --- a/iconvdata/ksc5601.h +++ b/iconvdata/ksc5601.h @@ -73,7 +73,7 @@ ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) if (idx >= 1410 && idx < 3760) return (__ksc5601_hangul_to_ucs[idx - 1410] ?: ((*s) -= 2, UNKNOWN_10646_CHAR)); - else if (idx > 3854) + else if (idx >= 3854) /* Hanja : row 42 - row 93 : 3854 = 94 * (42-1) */ return (__ksc5601_hanja_to_ucs[idx - 3854] ?: ((*s) -= 2, UNKNOWN_10646_CHAR)); diff --git a/iconvdata/testdata/ISO-2022-KR b/iconvdata/testdata/ISO-2022-KR new file mode 100644 index 0000000000..619b76f1c8 --- /dev/null +++ b/iconvdata/testdata/ISO-2022-KR @@ -0,0 +1,552 @@ +$)C + !! !" !# !$ !% !& !' !( !) !* !+ !, !- !. !/ +!0 !1 !2 !3 !4 !5 !6 !7 !8 !9 !: !; !< != !> !? +!@ !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 !{ !| !} !~ + "! "" "# "$ "% "& "' "( ") "* "+ ", "- ". "/ +"0 "1 "2 "3 "4 "5 "6 "7 "8 "9 ": "; "< "= "> "? +"@ "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 + + #! #" ## #$ #% #& #' #( #) #* #+ #, #- #. #/ +#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #: #; #< #= #> #? +#@ #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 #{ #| #} #~ + $! $" $# $$ $% $& $' $( $) $* $+ $, $- $. $/ +$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $: $; $< $= $> $? +$@ $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 ${ $| $} $~ + %! %" %# %$ %% %& %' %( %) %* +%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 + %A %B %C %D %E %F %G %H %I %J %K %L %M %N %O +%P %Q %R %S %T %U %V %W %X + %a %b %c %d %e %f %g %h %i %j %k %l %m %n %o +%p %q %r %s %t %u %v %w %x + &! &" &# &$ &% && &' &( &) &* &+ &, &- &. &/ +&0 &1 &2 &3 &4 &5 &6 &7 &8 &9 &: &; &< &= &> &? +&@ &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 + + '! '" '# '$ '% '& '' '( ') '* '+ ', '- '. '/ +'0 '1 '2 '3 '4 '5 '6 '7 '8 '9 ': '; '< '= '> '? +'@ '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 + + (! (" (# ($ (& (( () (* (+ (, (- (. (/ + (1 (2 (3 (4 (5 (6 (7 (8 (9 (: (; (< (= (> (? +(@ (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 ({ (| (} (~ + )! )" )# )$ )% )& )' )( )) )* )+ ), )- ). )/ +)0 )1 )2 )3 )4 )5 )6 )7 )8 )9 ): ); )< )= )> )? +)@ )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 ){ )| )} )~ + *! *" *# *$ *% *& *' *( *) ** *+ *, *- *. */ +*0 *1 *2 *3 *4 *5 *6 *7 *8 *9 *: *; *< *= *> *? +*@ *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 + +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ ++0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? ++@ +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 + ,! ," ,# ,$ ,% ,& ,' ,( ,) ,* ,+ ,, ,- ,. ,/ +,0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,: ,; ,< ,= ,> ,? +,@ ,A + ,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 + + + + + + 0! 0" 0# 0$ 0% 0& 0' 0( 0) 0* 0+ 0, 0- 0. 0/ +00 01 02 03 04 05 06 07 08 09 0: 0; 0< 0= 0> 0? +0@ 0A 0B 0C 0D 0E 0F 0G 0H 0I 0J 0K 0L 0M 0N 0O +0P 0Q 0R 0S 0T 0U 0V 0W 0X 0Y 0Z 0[ 0\ 0] 0^ 0_ +0` 0a 0b 0c 0d 0e 0f 0g 0h 0i 0j 0k 0l 0m 0n 0o +0p 0q 0r 0s 0t 0u 0v 0w 0x 0y 0z 0{ 0| 0} 0~ + 1! 1" 1# 1$ 1% 1& 1' 1( 1) 1* 1+ 1, 1- 1. 1/ +10 11 12 13 14 15 16 17 18 19 1: 1; 1< 1= 1> 1? +1@ 1A 1B 1C 1D 1E 1F 1G 1H 1I 1J 1K 1L 1M 1N 1O +1P 1Q 1R 1S 1T 1U 1V 1W 1X 1Y 1Z 1[ 1\ 1] 1^ 1_ +1` 1a 1b 1c 1d 1e 1f 1g 1h 1i 1j 1k 1l 1m 1n 1o +1p 1q 1r 1s 1t 1u 1v 1w 1x 1y 1z 1{ 1| 1} 1~ + 2! 2" 2# 2$ 2% 2& 2' 2( 2) 2* 2+ 2, 2- 2. 2/ +20 21 22 23 24 25 26 27 28 29 2: 2; 2< 2= 2> 2? +2@ 2A 2B 2C 2D 2E 2F 2G 2H 2I 2J 2K 2L 2M 2N 2O +2P 2Q 2R 2S 2T 2U 2V 2W 2X 2Y 2Z 2[ 2\ 2] 2^ 2_ +2` 2a 2b 2c 2d 2e 2f 2g 2h 2i 2j 2k 2l 2m 2n 2o +2p 2q 2r 2s 2t 2u 2v 2w 2x 2y 2z 2{ 2| 2} 2~ + 3! 3" 3# 3$ 3% 3& 3' 3( 3) 3* 3+ 3, 3- 3. 3/ +30 31 32 33 34 35 36 37 38 39 3: 3; 3< 3= 3> 3? +3@ 3A 3B 3C 3D 3E 3F 3G 3H 3I 3J 3K 3L 3M 3N 3O +3P 3Q 3R 3S 3T 3U 3V 3W 3X 3Y 3Z 3[ 3\ 3] 3^ 3_ +3` 3a 3b 3c 3d 3e 3f 3g 3h 3i 3j 3k 3l 3m 3n 3o +3p 3q 3r 3s 3t 3u 3v 3w 3x 3y 3z 3{ 3| 3} 3~ + 4! 4" 4# 4$ 4% 4& 4' 4( 4) 4* 4+ 4, 4- 4. 4/ +40 41 42 43 44 45 46 47 48 49 4: 4; 4< 4= 4> 4? +4@ 4A 4B 4C 4D 4E 4F 4G 4H 4I 4J 4K 4L 4M 4N 4O +4P 4Q 4R 4S 4T 4U 4V 4W 4X 4Y 4Z 4[ 4\ 4] 4^ 4_ +4` 4a 4b 4c 4d 4e 4f 4g 4h 4i 4j 4k 4l 4m 4n 4o +4p 4q 4r 4s 4t 4u 4v 4w 4x 4y 4z 4{ 4| 4} 4~ + 5! 5" 5# 5$ 5% 5& 5' 5( 5) 5* 5+ 5, 5- 5. 5/ +50 51 52 53 54 55 56 57 58 59 5: 5; 5< 5= 5> 5? +5@ 5A 5B 5C 5D 5E 5F 5G 5H 5I 5J 5K 5L 5M 5N 5O +5P 5Q 5R 5S 5T 5U 5V 5W 5X 5Y 5Z 5[ 5\ 5] 5^ 5_ +5` 5a 5b 5c 5d 5e 5f 5g 5h 5i 5j 5k 5l 5m 5n 5o +5p 5q 5r 5s 5t 5u 5v 5w 5x 5y 5z 5{ 5| 5} 5~ + 6! 6" 6# 6$ 6% 6& 6' 6( 6) 6* 6+ 6, 6- 6. 6/ +60 61 62 63 64 65 66 67 68 69 6: 6; 6< 6= 6> 6? +6@ 6A 6B 6C 6D 6E 6F 6G 6H 6I 6J 6K 6L 6M 6N 6O +6P 6Q 6R 6S 6T 6U 6V 6W 6X 6Y 6Z 6[ 6\ 6] 6^ 6_ +6` 6a 6b 6c 6d 6e 6f 6g 6h 6i 6j 6k 6l 6m 6n 6o +6p 6q 6r 6s 6t 6u 6v 6w 6x 6y 6z 6{ 6| 6} 6~ + 7! 7" 7# 7$ 7% 7& 7' 7( 7) 7* 7+ 7, 7- 7. 7/ +70 71 72 73 74 75 76 77 78 79 7: 7; 7< 7= 7> 7? +7@ 7A 7B 7C 7D 7E 7F 7G 7H 7I 7J 7K 7L 7M 7N 7O +7P 7Q 7R 7S 7T 7U 7V 7W 7X 7Y 7Z 7[ 7\ 7] 7^ 7_ +7` 7a 7b 7c 7d 7e 7f 7g 7h 7i 7j 7k 7l 7m 7n 7o +7p 7q 7r 7s 7t 7u 7v 7w 7x 7y 7z 7{ 7| 7} 7~ + 8! 8" 8# 8$ 8% 8& 8' 8( 8) 8* 8+ 8, 8- 8. 8/ +80 81 82 83 84 85 86 87 88 89 8: 8; 8< 8= 8> 8? +8@ 8A 8B 8C 8D 8E 8F 8G 8H 8I 8J 8K 8L 8M 8N 8O +8P 8Q 8R 8S 8T 8U 8V 8W 8X 8Y 8Z 8[ 8\ 8] 8^ 8_ +8` 8a 8b 8c 8d 8e 8f 8g 8h 8i 8j 8k 8l 8m 8n 8o +8p 8q 8r 8s 8t 8u 8v 8w 8x 8y 8z 8{ 8| 8} 8~ + 9! 9" 9# 9$ 9% 9& 9' 9( 9) 9* 9+ 9, 9- 9. 9/ +90 91 92 93 94 95 96 97 98 99 9: 9; 9< 9= 9> 9? +9@ 9A 9B 9C 9D 9E 9F 9G 9H 9I 9J 9K 9L 9M 9N 9O +9P 9Q 9R 9S 9T 9U 9V 9W 9X 9Y 9Z 9[ 9\ 9] 9^ 9_ +9` 9a 9b 9c 9d 9e 9f 9g 9h 9i 9j 9k 9l 9m 9n 9o +9p 9q 9r 9s 9t 9u 9v 9w 9x 9y 9z 9{ 9| 9} 9~ + :! :" :# :$ :% :& :' :( :) :* :+ :, :- :. :/ +:0 :1 :2 :3 :4 :5 :6 :7 :8 :9 :: :; :< := :> :? +:@ :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 :{ :| :} :~ + ;! ;" ;# ;$ ;% ;& ;' ;( ;) ;* ;+ ;, ;- ;. ;/ +;0 ;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8 ;9 ;: ;; ;< ;= ;> ;? +;@ ;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 ;{ ;| ;} ;~ + <! <" <# <$ <% <& <' <( <) <* <+ <, <- <. </ +<0 <1 <2 <3 <4 <5 <6 <7 <8 <9 <: <; << <= <> <? +<@ <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 <{ <| <} <~ + =! =" =# =$ =% =& =' =( =) =* =+ =, =- =. =/ +=0 =1 =2 =3 =4 =5 =6 =7 =8 =9 =: =; =< == => =? +=@ =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 ={ =| =} =~ + >! >" ># >$ >% >& >' >( >) >* >+ >, >- >. >/ +>0 >1 >2 >3 >4 >5 >6 >7 >8 >9 >: >; >< >= >> >? +>@ >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 >{ >| >} >~ + ?! ?" ?# ?$ ?% ?& ?' ?( ?) ?* ?+ ?, ?- ?. ?/ +?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?: ?; ?< ?= ?> ?? +?@ ?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 ?{ ?| ?} ?~ + @! @" @# @$ @% @& @' @( @) @* @+ @, @- @. @/ +@0 @1 @2 @3 @4 @5 @6 @7 @8 @9 @: @; @< @= @> @? +@@ @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 @{ @| @} @~ + A! A" A# A$ A% A& A' A( A) A* A+ A, A- A. A/ +A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A: A; A< A= A> A? +A@ AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO +AP AQ AR AS AT AU AV AW AX AY AZ A[ A\ A] A^ A_ +A` Aa Ab Ac Ad Ae Af Ag Ah Ai Aj Ak Al Am An Ao +Ap Aq Ar As At Au Av Aw Ax Ay Az A{ A| A} A~ + B! B" B# B$ B% B& B' B( B) B* B+ B, B- B. B/ +B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 B: B; B< B= B> B? +B@ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO +BP BQ BR BS BT BU BV BW BX BY BZ B[ B\ B] B^ B_ +B` Ba Bb Bc Bd Be Bf Bg Bh Bi Bj Bk Bl Bm Bn Bo +Bp Bq Br Bs Bt Bu Bv Bw Bx By Bz B{ B| B} B~ + C! C" C# C$ C% C& C' C( C) C* C+ C, C- C. C/ +C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C: C; C< C= C> C? +C@ CA CB CC CD CE CF CG CH CI CJ CK CL CM CN CO +CP CQ CR CS CT CU CV CW CX CY CZ C[ C\ C] C^ C_ +C` Ca Cb Cc Cd Ce Cf Cg Ch Ci Cj Ck Cl Cm Cn Co +Cp Cq Cr Cs Ct Cu Cv Cw Cx Cy Cz C{ C| C} C~ + D! D" D# D$ D% D& D' D( D) D* D+ D, D- D. D/ +D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D: D; D< D= D> D? +D@ DA DB DC DD DE DF DG DH DI DJ DK DL DM DN DO +DP DQ DR DS DT DU DV DW DX DY DZ D[ D\ D] D^ D_ +D` Da Db Dc Dd De Df Dg Dh Di Dj Dk Dl Dm Dn Do +Dp Dq Dr Ds Dt Du Dv Dw Dx Dy Dz D{ D| D} D~ + 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{ E| E} E~ + 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 F{ F| F} F~ + 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{ G| G} G~ + H! H" H# H$ H% H& H' H( H) H* H+ H, H- H. H/ +H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H: H; H< H= H> H? +H@ HA HB HC HD HE HF HG HH HI HJ HK HL HM HN HO +HP HQ HR HS HT HU HV HW HX HY HZ H[ H\ H] H^ H_ +H` Ha Hb Hc Hd He Hf Hg Hh Hi Hj Hk Hl Hm Hn Ho +Hp Hq Hr Hs Ht Hu Hv Hw Hx Hy Hz H{ H| H} H~ + + + + + + + J! J" J# J$ J% J& J' J( J) J* J+ J, J- J. J/ +J0 J1 J2 J3 J4 J5 J6 J7 J8 J9 J: J; J< J= J> J? +J@ JA JB JC JD JE JF JG JH JI JJ JK JL JM JN JO +JP JQ JR JS JT JU JV JW JX JY JZ J[ J\ J] J^ J_ +J` Ja Jb Jc Jd Je Jf Jg Jh Ji Jj Jk Jl Jm Jn Jo +Jp Jq Jr Js Jt Ju Jv Jw Jx Jy Jz J{ J| J} J~ + K! K" K# K$ K% K& K' K( K) K* K+ K, K- K. K/ +K0 K1 K2 K3 K4 K5 K6 K7 K8 K9 K: K; K< K= K> K? +K@ KA KB KC KD KE KF KG KH KI KJ KK KL KM KN KO +KP KQ KR KS KT KU KV KW KX KY KZ K[ K\ K] K^ K_ +K` Ka Kb Kc Kd Ke Kf Kg Kh Ki Kj Kk Kl Km Kn Ko +Kp Kq Kr Ks Kt Ku Kv Kw Kx Ky Kz K{ K| K} K~ + L! L" L# L$ L% L& L' L( L) L* L+ L, L- L. L/ +L0 L1 L2 L3 L4 L5 L6 L7 L8 L9 L: L; L< L= L> L? +L@ LA LB LC LD LE LF LG LH LI LJ LK LL LM LN LO +LP LQ LR LS LT LU LV LW LX LY LZ L[ L\ L] L^ L_ +L` La Lb Lc Ld Le Lf Lg Lh Li Lj Lk Ll Lm Ln Lo +Lp Lq Lr Ls Lt Lu Lv Lw Lx Ly Lz L{ L| L} L~ + M! M" M# M$ M% M& M' M( M) M* M+ M, M- M. M/ +M0 M1 M2 M3 M4 M5 M6 M7 M8 M9 M: M; M< M= M> M? +M@ MA MB MC MD ME MF MG MH MI MJ MK ML MM MN MO +MP MQ MR MS MT MU MV MW MX MY MZ M[ M\ M] M^ M_ +M` Ma Mb Mc Md Me Mf Mg Mh Mi Mj Mk Ml Mm Mn Mo +Mp Mq Mr Ms Mt Mu Mv Mw Mx My Mz M{ M| M} M~ + N! N" N# N$ N% N& N' N( N) N* N+ N, N- N. N/ +N0 N1 N2 N3 N4 N5 N6 N7 N8 N9 N: N; N< N= N> N? +N@ NA NB NC ND NE NF NG NH NI NJ NK NL NM NN NO +NP NQ NR NS NT NU NV NW NX NY NZ N[ N\ N] N^ N_ +N` Na Nb Nc Nd Ne Nf Ng Nh Ni Nj Nk Nl Nm Nn No +Np Nq Nr Ns Nt Nu Nv Nw Nx Ny Nz N{ N| N} N~ + 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 On Oo +Op Oq Or Os Ot Ou Ov Ow Ox Oy Oz O{ O| O} O~ + 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 Pm Pn Po +Pp Pq Pr Ps Pt Pu Pv Pw Px Py Pz P{ P| P} P~ + 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 QZ 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 Qz Q{ Q| Q} Q~ + R! R" R# R$ R% R& R' R( R) R* R+ R, R- R. R/ +R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R: R; R< R= R> R? +R@ RA RB RC RD RE RF RG RH RI RJ RK RL RM RN RO +RP RQ RR RS RT RU RV RW RX RY RZ R[ R\ R] R^ R_ +R` Ra Rb Rc Rd Re Rf Rg Rh Ri Rj Rk Rl Rm Rn Ro +Rp Rq Rr Rs Rt Ru Rv Rw Rx Ry Rz R{ R| R} R~ + S! S" S# S$ S% S& S' S( S) S* S+ S, S- S. S/ +S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S: S; S< S= S> S? +S@ SA SB SC SD SE SF SG SH SI SJ SK SL SM SN SO +SP SQ SR SS ST SU SV SW SX SY SZ S[ S\ S] S^ S_ +S` Sa Sb Sc Sd Se Sf Sg Sh Si Sj Sk Sl Sm Sn So +Sp Sq Sr Ss St Su Sv Sw Sx Sy Sz S{ S| S} S~ + T! T" T# T$ T% T& T' T( T) T* T+ T, T- T. T/ +T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 T: T; T< T= T> T? +T@ TA TB TC TD TE TF TG TH TI TJ TK TL TM TN TO +TP TQ TR TS TT TU TV TW TX TY TZ T[ T\ T] T^ T_ +T` Ta Tb Tc Td Te Tf Tg Th Ti Tj Tk Tl Tm Tn To +Tp Tq Tr Ts Tt Tu Tv Tw Tx Ty Tz T{ T| T} T~ + U! U" U# U$ U% U& U' U( U) U* U+ U, U- U. U/ +U0 U1 U2 U3 U4 U5 U6 U7 U8 U9 U: U; U< U= U> U? +U@ UA UB UC UD UE UF UG UH UI UJ UK UL UM UN UO +UP UQ UR US UT UU UV UW UX UY UZ U[ U\ U] U^ U_ +U` Ua Ub Uc Ud Ue Uf Ug Uh Ui Uj Uk Ul Um Un Uo +Up Uq Ur Us Ut Uu Uv Uw Ux Uy Uz U{ U| U} U~ + V! V" V# V$ V% V& V' V( V) V* V+ V, V- V. V/ +V0 V1 V2 V3 V4 V5 V6 V7 V8 V9 V: V; V< V= V> V? +V@ VA VB VC VD VE VF VG VH VI VJ VK VL VM VN VO +VP VQ VR VS VT VU VV VW VX VY VZ V[ V\ V] V^ V_ +V` Va Vb Vc Vd Ve Vf Vg Vh Vi Vj Vk Vl Vm Vn Vo +Vp Vq Vr Vs Vt Vu Vv Vw Vx Vy Vz V{ V| V} V~ + W! W" W# W$ W% W& W' W( W) W* W+ W, W- W. W/ +W0 W1 W2 W3 W4 W5 W6 W7 W8 W9 W: W; W< W= W> W? +W@ WA WB WC WD WE WF WG WH WI WJ WK WL WM WN WO +WP WQ WR WS WT WU WV WW WX WY WZ W[ W\ W] W^ W_ +W` Wa Wb Wc Wd We Wf Wg Wh Wi Wj Wk Wl Wm Wn Wo +Wp Wq Wr Ws Wt Wu Wv Ww Wx Wy Wz W{ W| W} W~ + X! X" X# X$ X% X& X' X( X) X* X+ X, X- X. X/ +X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X: X; X< X= X> X? +X@ XA XB XC XD XE XF XG XH XI XJ XK XL XM XN XO +XP XQ XR XS XT XU XV XW XX XY XZ X[ X\ X] X^ X_ +X` Xa Xb Xc Xd Xe Xf Xg Xh Xi Xj Xk Xl Xm Xn Xo +Xp Xq Xr Xs Xt Xu Xv Xw Xx Xy Xz X{ X| X} X~ + Y! Y" Y# Y$ Y% Y& Y' Y( Y) Y* Y+ Y, Y- Y. Y/ +Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y: Y; Y< Y= Y> Y? +Y@ YA YB YC YD YE YF YG YH YI YJ YK YL YM YN YO +YP YQ YR YS YT YU YV YW YX YY YZ Y[ Y\ Y] Y^ Y_ +Y` Ya Yb Yc Yd Ye Yf Yg Yh Yi Yj Yk Yl Ym Yn Yo +Yp Yq Yr Ys Yt Yu Yv Yw Yx Yy Yz Y{ Y| Y} Y~ + Z! Z" Z# Z$ Z% Z& Z' Z( Z) Z* Z+ Z, Z- Z. Z/ +Z0 Z1 Z2 Z3 Z4 Z5 Z6 Z7 Z8 Z9 Z: Z; Z< Z= Z> Z? +Z@ ZA ZB ZC ZD ZE ZF ZG ZH ZI ZJ ZK ZL ZM ZN ZO +ZP ZQ ZR ZS ZT ZU ZV ZW ZX ZY ZZ Z[ Z\ Z] Z^ Z_ +Z` Za Zb Zc Zd Ze Zf Zg Zh Zi Zj Zk Zl Zm Zn Zo +Zp Zq Zr Zs Zt Zu Zv Zw Zx Zy Zz Z{ Z| Z} Z~ + [! [" [# [$ [% [& [' [( [) [* [+ [, [- [. [/ +[0 [1 [2 [3 [4 [5 [6 [7 [8 [9 [: [; [< [= [> [? +[@ [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 [{ [| [} [~ + \! \" \# \$ \% \& \' \( \) \* \+ \, \- \. \/ +\0 \1 \2 \3 \4 \5 \6 \7 \8 \9 \: \; \< \= \> \? +\@ \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 \{ \| \} \~ + ]! ]" ]# ]$ ]% ]& ]' ]( ]) ]* ]+ ], ]- ]. ]/ +]0 ]1 ]2 ]3 ]4 ]5 ]6 ]7 ]8 ]9 ]: ]; ]< ]= ]> ]? +]@ ]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 ]{ ]| ]} ]~ + ^! ^" ^# ^$ ^% ^& ^' ^( ^) ^* ^+ ^, ^- ^. ^/ +^0 ^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^: ^; ^< ^= ^> ^? +^@ ^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 ^{ ^| ^} ^~ + _! _" _# _$ _% _& _' _( _) _* _+ _, _- _. _/ +_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _: _; _< _= _> _? +_@ _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 _{ _| _} _~ + `! `" `# `$ `% `& `' `( `) `* `+ `, `- `. `/ +`0 `1 `2 `3 `4 `5 `6 `7 `8 `9 `: `; `< `= `> `? +`@ `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 `{ `| `} `~ + a! a" a# a$ a% a& a' a( a) a* a+ a, a- a. a/ +a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a: a; a< a= a> a? +a@ aA aB aC aD aE aF aG aH aI aJ aK aL aM aN aO +aP aQ aR aS aT aU aV aW aX aY aZ a[ a\ a] a^ a_ +a` aa ab ac ad ae af ag ah ai aj ak al am an ao +ap aq ar as at au av aw ax ay az a{ a| a} a~ + b! b" b# b$ b% b& b' b( b) b* b+ b, b- b. b/ +b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b: b; b< b= b> b? +b@ bA bB bC bD bE bF bG bH bI bJ bK bL bM bN bO +bP bQ bR bS bT bU bV bW bX bY bZ b[ b\ b] b^ b_ +b` ba bb bc bd be bf bg bh bi bj bk bl bm bn bo +bp bq br bs bt bu bv bw bx by bz b{ b| b} b~ + c! c" c# c$ c% c& c' c( c) c* c+ c, c- c. c/ +c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c: c; c< c= c> c? +c@ cA cB cC cD cE cF cG cH cI cJ cK cL cM cN cO +cP cQ cR cS cT cU cV cW cX cY cZ c[ c\ c] c^ c_ +c` ca cb cc cd ce cf cg ch ci cj ck cl cm cn co +cp cq cr cs ct cu cv cw cx cy cz c{ c| c} c~ + d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ +d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? +d@ dA dB dC dD dE dF dG dH dI dJ dK dL dM dN dO +dP dQ dR dS dT dU dV dW dX dY dZ d[ d\ d] d^ d_ +d` da db dc dd de df dg dh di dj dk dl dm dn do +dp dq dr ds dt du dv dw dx dy dz d{ d| d} d~ + 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{ e| e} e~ + 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 f{ f| f} f~ + 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{ g| g} g~ + h! h" h# h$ h% h& h' h( h) h* h+ h, h- h. h/ +h0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h: h; h< h= h> h? +h@ hA hB hC hD hE hF hG hH hI hJ hK hL hM hN hO +hP hQ hR hS hT hU hV hW hX hY hZ h[ h\ h] h^ h_ +h` ha hb hc hd he hf hg hh hi hj hk hl hm hn ho +hp hq hr hs ht hu hv hw hx hy hz h{ h| h} h~ + i! i" i# i$ i% i& i' i( i) i* i+ i, i- i. i/ +i0 i1 i2 i3 i4 i5 i6 i7 i8 i9 i: i; i< i= i> i? +i@ iA iB iC iD iE iF iG iH iI iJ iK iL iM iN iO +iP iQ iR iS iT iU iV iW iX iY iZ i[ i\ i] i^ i_ +i` ia ib ic id ie if ig ih ii ij ik il im in io +ip iq ir is it iu iv iw ix iy iz i{ i| i} i~ + j! j" j# j$ j% j& j' j( j) j* j+ j, j- j. j/ +j0 j1 j2 j3 j4 j5 j6 j7 j8 j9 j: j; j< j= j> j? +j@ jA jB jC jD jE jF jG jH jI jJ jK jL jM jN jO +jP jQ jR jS jT jU jV jW jX jY jZ j[ j\ j] j^ j_ +j` ja jb jc jd je jf jg jh ji jj jk jl jm jn jo +jp jq jr js jt ju jv jw jx jy jz j{ j| j} j~ + k! k" k# k$ k% k& k' k( k) k* k+ k, k- k. k/ +k0 k1 k2 k3 k4 k5 k6 k7 k8 k9 k: k; k< k= k> k? +k@ kA kB kC kD kE kF kG kH kI kJ kK kL kM kN kO +kP kQ kR kS kT kU kV kW kX kY kZ k[ k\ k] k^ k_ +k` ka kb kc kd ke kf kg kh ki kj kk kl km kn ko +kp kq kr ks kt ku kv kw kx ky kz k{ k| k} k~ + l! l" l# l$ l% l& l' l( l) l* l+ l, l- l. l/ +l0 l1 l2 l3 l4 l5 l6 l7 l8 l9 l: l; l< l= l> l? +l@ lA lB lC lD lE lF lG lH lI lJ lK lL lM lN lO +lP lQ lR lS lT lU lV lW lX lY lZ l[ l\ l] l^ l_ +l` la lb lc ld le lf lg lh li lj lk ll lm ln lo +lp lq lr ls lt lu lv lw lx ly lz l{ l| l} l~ + m! m" m# m$ m% m& m' m( m) m* m+ m, m- m. m/ +m0 m1 m2 m3 m4 m5 m6 m7 m8 m9 m: m; m< m= m> m? +m@ mA mB mC mD mE mF mG mH mI mJ mK mL mM mN mO +mP mQ mR mS mT mU mV mW mX mY mZ m[ m\ m] m^ m_ +m` ma mb mc md me mf mg mh mi mj mk ml mm mn mo +mp mq mr ms mt mu mv mw mx my mz m{ m| m} m~ + n! n" n# n$ n% n& n' n( n) n* n+ n, n- n. n/ +n0 n1 n2 n3 n4 n5 n6 n7 n8 n9 n: n; n< n= n> n? +n@ nA nB nC nD nE nF nG nH nI nJ nK nL nM nN nO +nP nQ nR nS nT nU nV nW nX nY nZ n[ n\ n] n^ n_ +n` na nb nc nd ne nf ng nh ni nj nk nl nm nn no +np nq nr ns nt nu nv nw nx ny nz n{ n| n} n~ + 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 on oo +op oq or os ot ou ov ow ox oy oz o{ o| o} o~ + 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 pm pn po +pp pq pr ps pt pu pv pw px py pz p{ p| p} p~ + 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 qZ 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 qz q{ q| q} q~ + r! r" r# r$ r% r& r' r( r) r* r+ r, r- r. r/ +r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r: r; r< r= r> r? +r@ rA rB rC rD rE rF rG rH rI rJ rK rL rM rN rO +rP rQ rR rS rT rU rV rW rX rY rZ r[ r\ r] r^ r_ +r` ra rb rc rd re rf rg rh ri rj rk rl rm rn ro +rp rq rr rs rt ru rv rw rx ry rz r{ r| r} r~ + s! s" s# s$ s% s& s' s( s) s* s+ s, s- s. s/ +s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s: s; s< s= s> s? +s@ sA sB sC sD sE sF sG sH sI sJ sK sL sM sN sO +sP sQ sR sS sT sU sV sW sX sY sZ s[ s\ s] s^ s_ +s` sa sb sc sd se sf sg sh si sj sk sl sm sn so +sp sq sr ss st su sv sw sx sy sz s{ s| s} s~ + t! t" t# t$ t% t& t' t( t) t* t+ t, t- t. t/ +t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t: t; t< t= t> t? +t@ tA tB tC tD tE tF tG tH tI tJ tK tL tM tN tO +tP tQ tR tS tT tU tV tW tX tY tZ t[ t\ t] t^ t_ +t` ta tb tc td te tf tg th ti tj tk tl tm tn to +tp tq tr ts tt tu tv tw tx ty tz t{ t| t} t~ + u! u" u# u$ u% u& u' u( u) u* u+ u, u- u. u/ +u0 u1 u2 u3 u4 u5 u6 u7 u8 u9 u: u; u< u= u> u? +u@ uA uB uC uD uE uF uG uH uI uJ uK uL uM uN uO +uP uQ uR uS uT uU uV uW uX uY uZ u[ u\ u] u^ u_ +u` ua ub uc ud ue uf ug uh ui uj uk ul um un uo +up uq ur us ut uu uv uw ux uy uz u{ u| u} u~ + v! v" v# v$ v% v& v' v( v) v* v+ v, v- v. v/ +v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v: v; v< v= v> v? +v@ vA vB vC vD vE vF vG vH vI vJ vK vL vM vN vO +vP vQ vR vS vT vU vV vW vX vY vZ v[ v\ v] v^ v_ +v` va vb vc vd ve vf vg vh vi vj vk vl vm vn vo +vp vq vr vs vt vu vv vw vx vy vz v{ v| v} v~ + w! w" w# w$ w% w& w' w( w) w* w+ w, w- w. w/ +w0 w1 w2 w3 w4 w5 w6 w7 w8 w9 w: w; w< w= w> w? +w@ wA wB wC wD wE wF wG wH wI wJ wK wL wM wN wO +wP wQ wR wS wT wU wV wW wX wY wZ w[ w\ w] w^ w_ +w` wa wb wc wd we wf wg wh wi wj wk wl wm wn wo +wp wq wr ws wt wu wv ww wx wy wz w{ w| w} w~ + x! x" x# x$ x% x& x' x( x) x* x+ x, x- x. x/ +x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x: x; x< x= x> x? +x@ xA xB xC xD xE xF xG xH xI xJ xK xL xM xN xO +xP xQ xR xS xT xU xV xW xX xY xZ x[ x\ x] x^ x_ +x` xa xb xc xd xe xf xg xh xi xj xk xl xm xn xo +xp xq xr xs xt xu xv xw xx xy xz x{ x| x} x~ + y! y" y# y$ y% y& y' y( y) y* y+ y, y- y. y/ +y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 y: y; y< y= y> y? +y@ yA yB yC yD yE yF yG yH yI yJ yK yL yM yN yO +yP yQ yR yS yT yU yV yW yX yY yZ y[ y\ y] y^ y_ +y` ya yb yc yd ye yf yg yh yi yj yk yl ym yn yo +yp yq yr ys yt yu yv yw yx yy yz y{ y| y} y~ + z! z" z# z$ z% z& z' z( z) z* z+ z, z- z. z/ +z0 z1 z2 z3 z4 z5 z6 z7 z8 z9 z: z; z< z= z> z? +z@ zA zB zC zD zE zF zG zH zI zJ zK zL zM zN zO +zP zQ zR zS zT zU zV zW zX zY zZ z[ z\ z] z^ z_ +z` za zb zc zd ze zf zg zh zi zj zk zl zm zn zo +zp zq zr zs zt zu zv zw zx zy zz z{ z| z} z~ + {! {" {# {$ {% {& {' {( {) {* {+ {, {- {. {/ +{0 {1 {2 {3 {4 {5 {6 {7 {8 {9 {: {; {< {= {> {? +{@ {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 {{ {| {} {~ + |! |" |# |$ |% |& |' |( |) |* |+ |, |- |. |/ +|0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |: |; |< |= |> |? +|@ |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 |{ || |} |~ + }! }" }# }$ }% }& }' }( }) }* }+ }, }- }. }/ +}0 }1 }2 }3 }4 }5 }6 }7 }8 }9 }: }; }< }= }> }? +}@ }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 }{ }| }} }~ + + + + + + diff --git a/wcsmbs/btowc.c b/wcsmbs/btowc.c index cca4645c19..b6a682897b 100644 --- a/wcsmbs/btowc.c +++ b/wcsmbs/btowc.c @@ -43,6 +43,8 @@ __btowc (c) /* Tell where we want the result. */ data.outbuf = (char *) buf; data.outbufend = data.outbuf + sizeof (wchar_t); + data.invocation_counter = 0; + data.internal_use = 1; data.is_last = 1; data.statep = &data.__state; diff --git a/wcsmbs/mbrtowc.c b/wcsmbs/mbrtowc.c index 1dcaf968ea..837b42f1f1 100644 --- a/wcsmbs/mbrtowc.c +++ b/wcsmbs/mbrtowc.c @@ -45,6 +45,8 @@ __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) /* Tell where we want the result. */ data.outbuf = outbuf; data.outbufend = outbuf + sizeof (wchar_t); + data.invocation_counter = 0; + data.internal_use = 1; data.is_last = 1; data.statep = ps ?: &state; diff --git a/wcsmbs/mbsnrtowcs.c b/wcsmbs/mbsnrtowcs.c index a73fcd1e98..fbebc8de4c 100644 --- a/wcsmbs/mbsnrtowcs.c +++ b/wcsmbs/mbsnrtowcs.c @@ -50,6 +50,8 @@ __mbsnrtowcs (dst, src, nmc, len, ps) int status; /* Tell where we want the result. */ + data.invocation_counter = 0; + data.internal_use = 1; data.is_last = 1; data.statep = ps ?: &state; diff --git a/wcsmbs/mbsrtowcs.c b/wcsmbs/mbsrtowcs.c index bad27bab98..1993e2e702 100644 --- a/wcsmbs/mbsrtowcs.c +++ b/wcsmbs/mbsrtowcs.c @@ -46,6 +46,8 @@ __mbsrtowcs (dst, src, len, ps) int status; /* Tell where we want the result. */ + data.invocation_counter = 0; + data.internal_use = 1; data.is_last = 1; data.statep = ps ?: &state; diff --git a/wcsmbs/wcrtomb.c b/wcsmbs/wcrtomb.c index 6fd33e06b3..9f3c303e2a 100644 --- a/wcsmbs/wcrtomb.c +++ b/wcsmbs/wcrtomb.c @@ -45,6 +45,8 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps) /* Tell where we want the result. */ data.outbuf = s; data.outbufend = s + MB_CUR_MAX; + data.invocation_counter = 0; + data.internal_use = 1; data.is_last = 1; data.statep = ps ?: &state; diff --git a/wcsmbs/wcsnrtombs.c b/wcsmbs/wcsnrtombs.c index eb4a96daad..ab74e30927 100644 --- a/wcsmbs/wcsnrtombs.c +++ b/wcsmbs/wcsnrtombs.c @@ -49,6 +49,8 @@ __wcsnrtombs (dst, src, nwc, len, ps) size_t result = 0; /* Tell where we want the result. */ + data.invocation_counter = 0; + data.internal_use = 1; data.is_last = 1; data.statep = ps ?: &state; diff --git a/wcsmbs/wcsrtombs.c b/wcsmbs/wcsrtombs.c index 27b1df8f6d..b40d14318a 100644 --- a/wcsmbs/wcsrtombs.c +++ b/wcsmbs/wcsrtombs.c @@ -45,6 +45,8 @@ __wcsrtombs (dst, src, len, ps) size_t result = 0; /* Tell where we want the result. */ + data.invocation_counter = 0; + data.internal_use = 1; data.is_last = 1; data.statep = ps ?: &state; diff --git a/wcsmbs/wctob.c b/wcsmbs/wctob.c index 7376538ad9..8cbcbe41c3 100644 --- a/wcsmbs/wctob.c +++ b/wcsmbs/wctob.c @@ -38,6 +38,8 @@ wctob (c) /* Tell where we want the result. */ data.outbuf = buf; data.outbufend = buf + MB_LEN_MAX; + data.invocation_counter = 0; + data.internal_use = 1; data.is_last = 1; data.statep = &data.__state; |