diff options
-rw-r--r-- | mysys/charset.c | 86 | ||||
-rw-r--r-- | sql/item_strfunc.cc | 4 | ||||
-rw-r--r-- | sql/share/charsets/cp1251.conf | 4 | ||||
-rw-r--r-- | sql/share/charsets/cp1257.conf | 6 | ||||
-rw-r--r-- | sql/share/charsets/dec8.conf | 9 | ||||
-rw-r--r-- | sql/share/charsets/greek.conf | 7 | ||||
-rw-r--r-- | sql/share/charsets/hebrew.conf | 11 | ||||
-rw-r--r-- | sql/share/charsets/hp8.conf | 2 | ||||
-rw-r--r-- | sql/share/charsets/swe7.conf | 18 | ||||
-rw-r--r-- | sql/share/charsets/usa7.conf | 18 | ||||
-rw-r--r-- | sql/share/charsets/win1250.conf | 4 | ||||
-rw-r--r-- | sql/share/charsets/win1251.conf | 4 | ||||
-rw-r--r-- | sql/share/charsets/win1251ukr.conf | 4 |
13 files changed, 132 insertions, 45 deletions
diff --git a/mysys/charset.c b/mysys/charset.c index 5bc2f65468d..d6d0c91b028 100644 --- a/mysys/charset.c +++ b/mysys/charset.c @@ -237,6 +237,91 @@ static void get_charset_conf_name(uint cs_number, char *buf) name_from_csnum(available_charsets, cs_number), ".conf", NullS); } +typedef struct { + int nchars; + MY_UNI_IDX uidx; +} uni_idx; + +#define PLANE_SIZE 0x100 +#define PLANE_NUM 0x100 +#define PLANE_NUMBER(x) (((x)>>8) % PLANE_NUM) + +static int pcmp(const void * f, const void * s) +{ + const uni_idx *F=(const uni_idx*)f; + const uni_idx *S=(const uni_idx*)s; + int res; + + if(!(res=((S->nchars)-(F->nchars)))) + res=((F->uidx.from)-(S->uidx.to)); + return res; +} + +static my_bool create_fromuni(CHARSET_INFO *cs){ + uni_idx idx[PLANE_NUM]; + int i,n; + + /* Clear plane statistics */ + bzero(idx,sizeof(idx)); + + /* Count number of characters in each plane */ + for(i=0;i<0x100;i++) + { + uint16 wc=cs->tab_to_uni[i]; + int pl= PLANE_NUMBER(wc); + + if(wc || !i) + { + if(!idx[pl].nchars) + { + idx[pl].uidx.from=wc; + idx[pl].uidx.to=wc; + }else + { + idx[pl].uidx.from=wc<idx[pl].uidx.from?wc:idx[pl].uidx.from; + idx[pl].uidx.to=wc>idx[pl].uidx.to?wc:idx[pl].uidx.to; + } + idx[pl].nchars++; + } + } + + /* Sort planes in descending order */ + qsort(&idx,PLANE_NUM,sizeof(uni_idx),&pcmp); + + for(i=0;i<PLANE_NUM;i++) + { + int ch,numchars; + + /* Skip empty plane */ + if(!idx[i].nchars) + break; + + numchars=idx[i].uidx.to-idx[i].uidx.from+1; + idx[i].uidx.tab=(unsigned char*)my_once_alloc(numchars*sizeof(*idx[i].uidx.tab),MYF(MY_WME)); + bzero(idx[i].uidx.tab,numchars*sizeof(*idx[i].uidx.tab)); + + for(ch=1;ch<PLANE_SIZE;ch++) + { + uint16 wc=cs->tab_to_uni[ch]; + if(wc>=idx[i].uidx.from && wc<=idx[i].uidx.to && wc) + { + int ofs=wc-idx[i].uidx.from; + idx[i].uidx.tab[ofs]=ch; + } + } + } + + /* Allocate and fill reverse table for each plane */ + n=i; + cs->tab_from_uni=(MY_UNI_IDX*)my_once_alloc(sizeof(MY_UNI_IDX)*(n+1),MYF(MY_WME)); + for(i=0;i<n;i++) + cs->tab_from_uni[i]=idx[i].uidx; + + /* Set end-of-list marker */ + bzero(&cs->tab_from_uni[i],sizeof(MY_UNI_IDX)); + return FALSE; +} + static my_bool read_charset_file(uint cs_number, CHARSET_INFO *set, myf myflags) @@ -268,6 +353,7 @@ static my_bool read_charset_file(uint cs_number, CHARSET_INFO *set, result=TRUE; my_fclose(fb.f, MYF(0)); + create_fromuni(set); DBUG_RETURN(result); } diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index e3436ac4641..8f77f736c86 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -1860,8 +1860,8 @@ String *Item_func_conv_charset3::val_str(String *str) if (!arg || args[0]->null_value || !to_cs || args[1]->null_value || !from_cs || args[2]->null_value || - !(from_charset=find_compiled_charset_by_name(from_cs->ptr())) || - !(to_charset=find_compiled_charset_by_name(to_cs->ptr()))) + !(from_charset=get_charset_by_name(from_cs->ptr(), MYF(MY_WME))) || + !(to_charset=get_charset_by_name(to_cs->ptr(), MYF(MY_WME)))) { null_value=1; return 0; diff --git a/sql/share/charsets/cp1251.conf b/sql/share/charsets/cp1251.conf index 4418bf48289..653f7d26879 100644 --- a/sql/share/charsets/cp1251.conf +++ b/sql/share/charsets/cp1251.conf @@ -83,8 +83,8 @@ 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F -0402 0403 201A 0453 201E 2026 2020 2021 003F 2030 0409 2039 040A 040C 040B 040F -0452 2018 2019 201C 201D 2022 2013 2014 003F 2122 0459 203A 045A 045C 045B 045F +0402 0403 201A 0453 201E 2026 2020 2021 0000 2030 0409 2039 040A 040C 040B 040F +0452 2018 2019 201C 201D 2022 2013 2014 0000 2122 0459 203A 045A 045C 045B 045F 00A0 040E 045E 0408 00A4 0490 00A6 00A7 0401 00A9 0404 00AB 00AC 00AD 00AE 0407 00B0 00B1 0406 0456 0491 00B5 00B6 00B7 0451 2116 0454 00BB 0458 0405 0455 0457 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F diff --git a/sql/share/charsets/cp1257.conf b/sql/share/charsets/cp1257.conf index b0e89bb67c4..8338f99c83b 100644 --- a/sql/share/charsets/cp1257.conf +++ b/sql/share/charsets/cp1257.conf @@ -82,9 +82,9 @@ 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F -20AC 003F 201A 003F 201E 2026 2020 2021 003F 2030 003F 2039 003F 00A8 02C7 00B8 -003F 2018 2019 201C 201D 2022 2013 2014 003F 2122 003F 203A 003F 00AF 02DB 003F -00A0 003F 00A2 00A3 00A4 003F 00A6 00A7 00D8 00A9 0156 00AB 00AC 00AD 00AE 00C6 +20AC 0000 201A 0000 201E 2026 2020 2021 0000 2030 0000 2039 0000 00A8 02C7 00B8 +0000 2018 2019 201C 201D 2022 2013 2014 0000 2122 0000 203A 0000 00AF 02DB 0000 +00A0 0000 00A2 00A3 00A4 0000 00A6 00A7 00D8 00A9 0156 00AB 00AC 00AD 00AE 00C6 00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00F8 00B9 0157 00BB 00BC 00BD 00BE 00E6 0104 012E 0100 0106 00C4 00C5 0118 0112 010C 00C9 0179 0116 0122 0136 012A 013B 0160 0143 0145 00D3 014C 00D5 00D6 00D7 0172 0141 015A 016A 00DC 017B 017D 00DF diff --git a/sql/share/charsets/dec8.conf b/sql/share/charsets/dec8.conf index 87af7071f8c..d1ffe45032d 100644 --- a/sql/share/charsets/dec8.conf +++ b/sql/share/charsets/dec8.conf @@ -84,10 +84,9 @@ 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F -00A0 00A1 00A2 00A3 003F 00A5 003F 00A7 00A4 00A9 00AA 00AB 003F 003F 003F 003F -00B0 00B1 00B2 00B3 003F 00B5 00B6 00B7 003F 00B9 00BA 00BB 00BC 00BD 003F 00BF +00A0 00A1 00A2 00A3 0000 00A5 0000 00A7 00A4 00A9 00AA 00AB 0000 0000 0000 0000 +00B0 00B1 00B2 00B3 0000 00B5 00B6 00B7 0000 00B9 00BA 00BB 00BC 00BD 0000 00BF 00C0 00C1 00C2 00C3 00C4 00C5 00C6 00C7 00C8 00C9 00CA 00CB 00CC 00CD 00CE 00CF -003F 00D1 00D2 00D3 00D4 00D5 00D6 0152 00D8 00D9 00DA 00DB 00DC 0178 003F 00DF +0000 00D1 00D2 00D3 00D4 00D5 00D6 0152 00D8 00D9 00DA 00DB 00DC 0178 0000 00DF 00E0 00E1 00E2 00E3 00E4 00E5 00E6 00E7 00E8 00E9 00EA 00EB 00EC 00ED 00EE 00EF -003F 00F1 00F2 00F3 00F4 00F5 00F6 0153 00F8 00F9 00FA 00FB 00FC 00FF 003F 003F - +0000 00F1 00F2 00F3 00F4 00F5 00F6 0153 00F8 00F9 00FA 00FB 00FC 00FF 0000 0000 diff --git a/sql/share/charsets/greek.conf b/sql/share/charsets/greek.conf index 3b5108b561b..5eb38e2efbe 100644 --- a/sql/share/charsets/greek.conf +++ b/sql/share/charsets/greek.conf @@ -84,9 +84,10 @@ 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F -00A0 02BD 02BC 00A3 003F 003F 00A6 00A7 00A8 00A9 003F 00AB 00AC 00AD 003F 2015 +00A0 02BD 02BC 00A3 0000 0000 00A6 00A7 00A8 00A9 0000 00AB 00AC 00AD 0000 2015 00B0 00B1 00B2 00B3 0384 0385 0386 00B7 0388 0389 038A 00BB 038C 00BD 038E 038F 0390 0391 0392 0393 0394 0395 0396 0397 0398 0399 039A 039B 039C 039D 039E 039F -03A0 03A1 003F 03A3 03A4 03A5 03A6 03A7 03A8 03A9 03AA 03AB 03AC 03AD 03AE 03AF +03A0 03A1 0000 03A3 03A4 03A5 03A6 03A7 03A8 03A9 03AA 03AB 03AC 03AD 03AE 03AF 03B0 03B1 03B2 03B3 03B4 03B5 03B6 03B7 03B8 03B9 03BA 03BB 03BC 03BD 03BE 03BF -03C0 03C1 03C2 03C3 03C4 03C5 03C6 03C7 03C8 03C9 03CA 03CB 03CC 03CD 03CE 003F +03C0 03C1 03C2 03C3 03C4 03C5 03C6 03C7 03C8 03C9 03CA 03CB 03CC 03CD 03CE 0000 +
\ No newline at end of file diff --git a/sql/share/charsets/hebrew.conf b/sql/share/charsets/hebrew.conf index 0475db02b24..84581f6f1bb 100644 --- a/sql/share/charsets/hebrew.conf +++ b/sql/share/charsets/hebrew.conf @@ -84,9 +84,10 @@ 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F 0080 0081 0082 0083 0084 0085 0086 0087 0088 0089 008A 008B 008C 008D 008E 008F 0090 0091 0092 0093 0094 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F -00A0 003F 00A2 00A3 00A4 00A5 00A6 00A7 00A8 00A9 00D7 00AB 00AC 00AD 00AE 203E -00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 00F7 00BB 00BC 00BD 00BE 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 2017 +00A0 0000 00A2 00A3 00A4 00A5 00A6 00A7 00A8 00A9 00D7 00AB 00AC 00AD 00AE 203E +00B0 00B1 00B2 00B3 00B4 00B5 00B6 00B7 00B8 00B9 00F7 00BB 00BC 00BD 00BE 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2017 05D0 05D1 05D2 05D3 05D4 05D5 05D6 05D7 05D8 05D9 05DA 05DB 05DC 05DD 05DE 05DF -05E0 05E1 05E2 05E3 05E4 05E5 05E6 05E7 05E8 05E9 05EA 003F 003F 003F 003F 003F +05E0 05E1 05E2 05E3 05E4 05E5 05E6 05E7 05E8 05E9 05EA 0000 0000 0000 0000 0000 +
\ No newline at end of file diff --git a/sql/share/charsets/hp8.conf b/sql/share/charsets/hp8.conf index d0fd37f5f24..07036d6f186 100644 --- a/sql/share/charsets/hp8.conf +++ b/sql/share/charsets/hp8.conf @@ -89,5 +89,5 @@ 00E2 00EA 00F4 00FB 00E1 00E9 00F3 00FA 00E0 00E8 00F2 00F9 00E4 00EB 00F6 00FC 00C5 00EE 00D8 00C6 00E5 00ED 00F8 00E6 00C4 00EC 00D6 00DC 00C9 00EF 00DF 00D4 00C1 00C3 00E3 00D0 00F0 00CD 00CC 00D3 00D2 00D5 00F5 0160 0161 00DA 0178 00FF -00DE 00FE 00B7 00B5 00B6 00BE 2014 00BC 00BD 00AA 00BA 00AB 25A0 00BB 00B1 003F +00DE 00FE 00B7 00B5 00B6 00BE 2014 00BC 00BD 00AA 00BA 00AB 25A0 00BB 00B1 0000 diff --git a/sql/share/charsets/swe7.conf b/sql/share/charsets/swe7.conf index c68593a351c..49938800f39 100644 --- a/sql/share/charsets/swe7.conf +++ b/sql/share/charsets/swe7.conf @@ -81,12 +81,12 @@ 00C9 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 00C4 00D6 00C5 00DC 005F 00E9 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F -0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 00E4 00F6 00E5 00FC 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 00E4 00F6 00E5 00FC 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 diff --git a/sql/share/charsets/usa7.conf b/sql/share/charsets/usa7.conf index 45e260870ba..380fc9b5d8b 100644 --- a/sql/share/charsets/usa7.conf +++ b/sql/share/charsets/usa7.conf @@ -81,12 +81,12 @@ 0040 0041 0042 0043 0044 0045 0046 0047 0048 0049 004A 004B 004C 004D 004E 004F 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F -0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F -003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F 003F +0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 +0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 diff --git a/sql/share/charsets/win1250.conf b/sql/share/charsets/win1250.conf index abe0a9a8702..0a5b5074bde 100644 --- a/sql/share/charsets/win1250.conf +++ b/sql/share/charsets/win1250.conf @@ -82,8 +82,8 @@ 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F -20AC 003F 201A 003F 201E 2026 2020 2021 003F 2030 0160 2039 015A 0164 017D 0179 -003F 2018 2019 201C 201D 2022 2013 2014 003F 2122 0161 203A 015B 0165 017E 017A +20AC 0000 201A 0000 201E 2026 2020 2021 0000 2030 0160 2039 015A 0164 017D 0179 +0000 2018 2019 201C 201D 2022 2013 2014 0000 2122 0161 203A 015B 0165 017E 017A 00A0 02C7 02D8 0141 00A4 0104 00A6 00A7 00A8 00A9 015E 00AB 00AC 00AD 00AE 017B 00B0 00B1 02DB 0142 00B4 00B5 00B6 00B7 00B8 0105 015F 00BB 013D 02DD 013E 017C 0154 00C1 00C2 0102 00C4 0139 0106 00C7 010C 00C9 0118 00CB 011A 00CD 00CE 010E diff --git a/sql/share/charsets/win1251.conf b/sql/share/charsets/win1251.conf index 55f688f59b9..2164cb36b9e 100644 --- a/sql/share/charsets/win1251.conf +++ b/sql/share/charsets/win1251.conf @@ -90,8 +90,8 @@ 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F -0402 0403 201A 0453 201E 2026 2020 2021 003F 2030 0409 2039 040A 040C 040B 040F -0452 2018 2019 201C 201D 2022 2013 2014 003F 2122 0459 203A 045A 045C 045B 045F +0402 0403 201A 0453 201E 2026 2020 2021 0000 2030 0409 2039 040A 040C 040B 040F +0452 2018 2019 201C 201D 2022 2013 2014 0000 2122 0459 203A 045A 045C 045B 045F 00A0 040E 045E 0408 00A4 0490 00A6 00A7 0401 00A9 0404 00AB 00AC 00AD 00AE 0407 00B0 00B1 0406 0456 0491 00B5 00B6 00B7 0451 2116 0454 00BB 0458 0405 0455 0457 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F diff --git a/sql/share/charsets/win1251ukr.conf b/sql/share/charsets/win1251ukr.conf index 2fbab363e5e..da08e4c7d6f 100644 --- a/sql/share/charsets/win1251ukr.conf +++ b/sql/share/charsets/win1251ukr.conf @@ -85,8 +85,8 @@ 0050 0051 0052 0053 0054 0055 0056 0057 0058 0059 005A 005B 005C 005D 005E 005F 0060 0061 0062 0063 0064 0065 0066 0067 0068 0069 006A 006B 006C 006D 006E 006F 0070 0071 0072 0073 0074 0075 0076 0077 0078 0079 007A 007B 007C 007D 007E 007F -0402 0403 201A 0453 201E 2026 2020 2021 003F 2030 0409 2039 040A 040C 040B 040F -0452 2018 2019 201C 201D 2022 2013 2014 003F 2122 0459 203A 045A 045C 045B 045F +0402 0403 201A 0453 201E 2026 2020 2021 0000 2030 0409 2039 040A 040C 040B 040F +0452 2018 2019 201C 201D 2022 2013 2014 0000 2122 0459 203A 045A 045C 045B 045F 00A0 040E 045E 0408 00A4 0490 00A6 00A7 0401 00A9 0404 00AB 00AC 00AD 00AE 0407 00B0 00B1 0406 0456 0491 00B5 00B6 00B7 0451 2116 0454 00BB 0458 0405 0455 0457 0410 0411 0412 0413 0414 0415 0416 0417 0418 0419 041A 041B 041C 041D 041E 041F |