comment_char %
escape_char  /
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Licensed to the Apache Software  Foundation (ASF) under one or more
% contributor  license agreements.  See  the NOTICE  file distributed
% with  this  work  for  additional information  regarding  copyright
% ownership.   The ASF  licenses this  file to  you under  the Apache
% License, Version  2.0 (the  License); you may  not use  this file  
% except in  compliance with the License.   You may obtain  a copy of
% the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the  License is distributed on an  "AS IS" BASIS,
% WITHOUT  WARRANTIES OR CONDITIONS  OF ANY  KIND, either  express or
% implied.   See  the License  for  the  specific language  governing
% permissions and limitations under the License.
%
% Copyright 1999-2007 Rogue Wave Software, Inc.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Transliterations of wide equivalents.
% Generated through
%   $ grep '^[^;]*;[^;]*;[^;]*;[^;]*;[^;]*;<wide>[^;]*;' UnicodeData.txt | \
%     sed -e 's/^\([^;]*\);\([^;]*\);[^;]*;[^;]*;[^;]*;<wide> \([^;]*\);.*$/<U\1> <U\3> % \2/'

LC_CTYPE

translit_start

<U3000> <U0020> % IDEOGRAPHIC SPACE
<UFF01> <U0021> % FULLWIDTH EXCLAMATION MARK
<UFF02> <U0022> % FULLWIDTH QUOTATION MARK
<UFF03> <U0023> % FULLWIDTH NUMBER SIGN
<UFF04> <U0024> % FULLWIDTH DOLLAR SIGN
<UFF05> <U0025> % FULLWIDTH PERCENT SIGN
<UFF06> <U0026> % FULLWIDTH AMPERSAND
<UFF07> <U0027> % FULLWIDTH APOSTROPHE
<UFF08> <U0028> % FULLWIDTH LEFT PARENTHESIS
<UFF09> <U0029> % FULLWIDTH RIGHT PARENTHESIS
<UFF0A> <U002A> % FULLWIDTH ASTERISK
<UFF0B> <U002B> % FULLWIDTH PLUS SIGN
<UFF0C> <U002C> % FULLWIDTH COMMA
<UFF0D> <U002D> % FULLWIDTH HYPHEN-MINUS
<UFF0E> <U002E> % FULLWIDTH FULL STOP
<UFF0F> <U002F> % FULLWIDTH SOLIDUS
<UFF10> <U0030> % FULLWIDTH DIGIT ZERO
<UFF11> <U0031> % FULLWIDTH DIGIT ONE
<UFF12> <U0032> % FULLWIDTH DIGIT TWO
<UFF13> <U0033> % FULLWIDTH DIGIT THREE
<UFF14> <U0034> % FULLWIDTH DIGIT FOUR
<UFF15> <U0035> % FULLWIDTH DIGIT FIVE
<UFF16> <U0036> % FULLWIDTH DIGIT SIX
<UFF17> <U0037> % FULLWIDTH DIGIT SEVEN
<UFF18> <U0038> % FULLWIDTH DIGIT EIGHT
<UFF19> <U0039> % FULLWIDTH DIGIT NINE
<UFF1A> <U003A> % FULLWIDTH COLON
<UFF1B> <U003B> % FULLWIDTH SEMICOLON
<UFF1C> <U003C> % FULLWIDTH LESS-THAN SIGN
<UFF1D> <U003D> % FULLWIDTH EQUALS SIGN
<UFF1E> <U003E> % FULLWIDTH GREATER-THAN SIGN
<UFF1F> <U003F> % FULLWIDTH QUESTION MARK
<UFF20> <U0040> % FULLWIDTH COMMERCIAL AT
<UFF21> <U0041> % FULLWIDTH LATIN CAPITAL LETTER A
<UFF22> <U0042> % FULLWIDTH LATIN CAPITAL LETTER B
<UFF23> <U0043> % FULLWIDTH LATIN CAPITAL LETTER C
<UFF24> <U0044> % FULLWIDTH LATIN CAPITAL LETTER D
<UFF25> <U0045> % FULLWIDTH LATIN CAPITAL LETTER E
<UFF26> <U0046> % FULLWIDTH LATIN CAPITAL LETTER F
<UFF27> <U0047> % FULLWIDTH LATIN CAPITAL LETTER G
<UFF28> <U0048> % FULLWIDTH LATIN CAPITAL LETTER H
<UFF29> <U0049> % FULLWIDTH LATIN CAPITAL LETTER I
<UFF2A> <U004A> % FULLWIDTH LATIN CAPITAL LETTER J
<UFF2B> <U004B> % FULLWIDTH LATIN CAPITAL LETTER K
<UFF2C> <U004C> % FULLWIDTH LATIN CAPITAL LETTER L
<UFF2D> <U004D> % FULLWIDTH LATIN CAPITAL LETTER M
<UFF2E> <U004E> % FULLWIDTH LATIN CAPITAL LETTER N
<UFF2F> <U004F> % FULLWIDTH LATIN CAPITAL LETTER O
<UFF30> <U0050> % FULLWIDTH LATIN CAPITAL LETTER P
<UFF31> <U0051> % FULLWIDTH LATIN CAPITAL LETTER Q
<UFF32> <U0052> % FULLWIDTH LATIN CAPITAL LETTER R
<UFF33> <U0053> % FULLWIDTH LATIN CAPITAL LETTER S
<UFF34> <U0054> % FULLWIDTH LATIN CAPITAL LETTER T
<UFF35> <U0055> % FULLWIDTH LATIN CAPITAL LETTER U
<UFF36> <U0056> % FULLWIDTH LATIN CAPITAL LETTER V
<UFF37> <U0057> % FULLWIDTH LATIN CAPITAL LETTER W
<UFF38> <U0058> % FULLWIDTH LATIN CAPITAL LETTER X
<UFF39> <U0059> % FULLWIDTH LATIN CAPITAL LETTER Y
<UFF3A> <U005A> % FULLWIDTH LATIN CAPITAL LETTER Z
<UFF3B> <U005B> % FULLWIDTH LEFT SQUARE BRACKET
<UFF3C> <U005C> % FULLWIDTH REVERSE SOLIDUS
<UFF3D> <U005D> % FULLWIDTH RIGHT SQUARE BRACKET
<UFF3E> <U005E> % FULLWIDTH CIRCUMFLEX ACCENT
<UFF3F> <U005F> % FULLWIDTH LOW LINE
<UFF40> <U0060> % FULLWIDTH GRAVE ACCENT
<UFF41> <U0061> % FULLWIDTH LATIN SMALL LETTER A
<UFF42> <U0062> % FULLWIDTH LATIN SMALL LETTER B
<UFF43> <U0063> % FULLWIDTH LATIN SMALL LETTER C
<UFF44> <U0064> % FULLWIDTH LATIN SMALL LETTER D
<UFF45> <U0065> % FULLWIDTH LATIN SMALL LETTER E
<UFF46> <U0066> % FULLWIDTH LATIN SMALL LETTER F
<UFF47> <U0067> % FULLWIDTH LATIN SMALL LETTER G
<UFF48> <U0068> % FULLWIDTH LATIN SMALL LETTER H
<UFF49> <U0069> % FULLWIDTH LATIN SMALL LETTER I
<UFF4A> <U006A> % FULLWIDTH LATIN SMALL LETTER J
<UFF4B> <U006B> % FULLWIDTH LATIN SMALL LETTER K
<UFF4C> <U006C> % FULLWIDTH LATIN SMALL LETTER L
<UFF4D> <U006D> % FULLWIDTH LATIN SMALL LETTER M
<UFF4E> <U006E> % FULLWIDTH LATIN SMALL LETTER N
<UFF4F> <U006F> % FULLWIDTH LATIN SMALL LETTER O
<UFF50> <U0070> % FULLWIDTH LATIN SMALL LETTER P
<UFF51> <U0071> % FULLWIDTH LATIN SMALL LETTER Q
<UFF52> <U0072> % FULLWIDTH LATIN SMALL LETTER R
<UFF53> <U0073> % FULLWIDTH LATIN SMALL LETTER S
<UFF54> <U0074> % FULLWIDTH LATIN SMALL LETTER T
<UFF55> <U0075> % FULLWIDTH LATIN SMALL LETTER U
<UFF56> <U0076> % FULLWIDTH LATIN SMALL LETTER V
<UFF57> <U0077> % FULLWIDTH LATIN SMALL LETTER W
<UFF58> <U0078> % FULLWIDTH LATIN SMALL LETTER X
<UFF59> <U0079> % FULLWIDTH LATIN SMALL LETTER Y
<UFF5A> <U007A> % FULLWIDTH LATIN SMALL LETTER Z
<UFF5B> <U007B> % FULLWIDTH LEFT CURLY BRACKET
<UFF5C> <U007C> % FULLWIDTH VERTICAL LINE
<UFF5D> <U007D> % FULLWIDTH RIGHT CURLY BRACKET
<UFF5E> <U007E> % FULLWIDTH TILDE
<UFFE0> <U00A2> % FULLWIDTH CENT SIGN
<UFFE1> <U00A3> % FULLWIDTH POUND SIGN
<UFFE2> <U00AC> % FULLWIDTH NOT SIGN
<UFFE3> <U00AF> % FULLWIDTH MACRON
<UFFE4> <U00A6> % FULLWIDTH BROKEN BAR
<UFFE5> <U00A5> % FULLWIDTH YEN SIGN
<UFFE6> <U20A9> % FULLWIDTH WON SIGN

translit_end

END LC_CTYPE
