# This file is obsolete. Do not use!

# liblouis: uni-text.dis
#
# Copyright (C) 1995-2004 by The BRLTTY Team
# Copyright (C) 2004 ViewPlus Technologies, Inc., www.viewplustech.com
# Copyright (C) 2004 Computers to Help People, Inc., www.chpi.org

# This file is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.

# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.

# You should have received a copy of the GNU Lesser General Public
# License along with this file; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
# liblouis  comes with ABSOLUTELY NO WARRANTY.

# This is a description of the default text translation table used by BRLTTY.  


        #Hex   Dots				Dec		Char Description
display \X0020 0					#32					space
display \X0021  2346			#33		!			exclamation mark
display \X0022    5				#34		"			quotation mark
display \X0023   3456			#35		#			number sign
display \X0024 1246				#36		$			dollar sign
display \X0025 146				#37		%			percent sign
display \X0026 12346			#38		&			ampersand
display \X0027  3					#39		'			apostrophe
display \X0028	12356			#40		(			left parenthesis
display \X0029   23456		#41		)			right parenthesis
display \X002A 16					#42		*			asterisk
display \X002B	346				#43		+			plus sign
display \X002C    6				#44		,			comma
display \X002D	36				#45		-			hyphen-minus
display \X002E	46				#46		.			full stop
display \X002F	34				#47		/			solidus

display \X0030	356		#480			digit zero
display \X0031	2			#491			digit one
display \X0032	23		#502			digit two
display \X0033	25		#513			digit three
display \X0034  256		#524			digit four
display \X0035  26		#535			digit five
display \X0036  235		#546			digit six
display \X0037  2356	#557			digit seven
display \X0038  236		#568			digit eight
display \X0039	35		#579			digit nine

display \X003A	156			#58		:		colon
display \X003B   56			#59		;		semicolon
display \X003C 126			#60		<		less-than sign
display \X003D 123456		#61		=		equals sign
display \X003E 345			#62		>		greater-than sign
display \X003F 1456			#63		?		question mark
display \X0040  47			#64		@	commercial at

        #Hex   Dots		Dec	Char Description
display \X0041 1				#65	A Latin capital letter a
display \X0042 12				#66	B Latin capital letter b
display \X0043 14				#67	C Latin capital letter c
display \X0044 145			#68	D Latin capital letter d
display \X0045 15				#69	E Latin capital letter e
display \X0046 124			#70	F Latin capital letter f
display \X0047 1245			#71	G Latin capital letter g
display \X0048 125			#72	H Latin capital letter h
display \X0049 24				#73	I Latin capital letter i
display \X004A 245			#74	J Latin capital letter j
display \X004B 13				#75	K Latin capital letter k
display \X004C 123			#76	L Latin capital letter l
display \X004D 134			#77	M Latin capital letter m
display \X004E 1345			#78	N Latin capital letter n
display \X004F 1357			#79	O Latin capital letter o
display \X0050 1234			#80	P Latin capital letter p
display \X0051 12345		#81	Q Latin capital letter q
display \X0052 1235			#82	R Latin capital letter r
display \X0053 234			#83	S Latin capital letter s
display \X0054 2345			#84	T Latin capital letter t
display \X0055 136			#85	U Latin capital letter u
display \X0056 1236			#86	V Latin capital letter v
display \X0057 2456			#87	W Latin capital letter w
display \X0058 1346			#88	X Latin capital letter x
display \X0059 13456		#89	Y Latin capital letter y
display \X005A 1356			#90	Z Latin capital letter z

display \X005B 246			#	91  [		left square bracket
display \X005C 12567		#	92	\		reverse solidus
display \X005D 12456		# 93  ]		right square bracket
display \X005E 2346		# 94 ^	circumflex accent
display \X005F 456		# 95 _	low line
display \X0060 345		# 96 `	grave accent

display \X0061 1			#97  a  Latin small letter a
display \X0062 12			#98  b Latin small letter b
display \X0063 14			#99  c Latin small letter c
display \X0064 145		#100 d Latin small letter d
display \X0065 15			#101 e Latin small letter e
display \X0066 124		#102 f Latin small letter f
display \X0067 1245		#103 g Latin small letter g
display \X0068 125		#104 h Latin small letter h
display \X0069  24		#105 i Latin small letter i
display \X006A  245		#106 j Latin small letter j
display \X006B 13			#107 k Latin small letter k
display \X006C 123		#108 l Latin small letter l
display \X006D 134		#109 m Latin small letter m
display \X006E 1345		#110 n Latin small letter n
display \X006F 135		#111 o Latin small letter o
display \X0070 1234		#112 p Latin small letter p
display \X0071 12345	#113 q Latin small letter q
display \X0072 1235		#114 r Latin small letter r
display \X0073 234		#115 s Latin small letter s
display \X0074  2345	#116 t Latin small letter t
display \X0075 136		#117 u Latin small letter u
display \X0076 1236		#118 v Latin small letter v
display \X0077  2456	#119 w Latin small letter w
display \X0078 1346		#120 x Latin small letter x
display \X0079 13456	#121 y Latin small letter y
display \X007A 1356		#122 z Latin small letter z

display \X007B  12356			# 123 {		left curly bracket
display \X007C 34					# 124 |		vertical line
display \X007D 23456			#	125 }		right curly bracket
display \X007E   45				#	126 ~   tilde
display \X007F 4568				# 127	^		?delete

					#Hex Dots Dec Char Description
display \X0080 48			# 128		~@<control>
display \X0081 18			# 129		~A<control>
display \X0082 128		# 130		~Bbreak permitted here
display \X0083 148		# 131		~Cno break here
display \X0084 1458		# 132		~D<control>
display \X0085 158		# 133		~Enext line
display \X0086 1248		# 134		~Fstart of selected area
display \X0087 12458	# 135		~Gend of selected area
display \X0088 1258		# 136		~Hcharacter tabulation set
display \X0089  248		# 137		~Icharacter tabulation with justification
display \X008A  2458	# 138		~Jline tabulation set
display \X008B 138	# 139~Kpartial line down
display \X008C 1238 # 140~Lpartial line up
display \X008D 1348 # 141~Mreverse line feed
display \X008E 13458 # 142~Nsingle shift two
display \X008F 1358 # 143~Osingle shift three
display \X0090 12348 # 144~Pdevice control string
display \X0091 123458 # 145~Qprivate use one
display \X0092 12358 # 146~Rprivate use two
display \X0093 2348 # 147~Sset transmit state
display \X0094  23458 # 148~Tcancel character
display \X0095 1368 # 149~Umessage waiting
display \X0096 12368 # 150~Vstart of guarded area
display \X0097  24568 # 151~Wend of guarded area
display \X0098 13468 # 152~Xstart of string
display \X0099 134568 # 153~Y<control>
display \X009A 13568 # 154~Zsingle character introducer
display \X009B  2468 # 155~[control sequence introducer
display \X009C 12568 # 156~\string terminator
display \X009D 124568 # 157~]operating system command
display \X009E 458 # 158~^privacy message
display \X009F 4568		# 159				~_application program command
display \X00A0 0			#160			no-break space

#Hex Dots Dec Char Description
display \X0000 478 #0^@null
display \X0001 178 #1^Astart of heading
display \X0002 1278 #2^Bstart of text
display \X0003 1478 #3^Cend of text
display \X0004 14578 #4^Dend of transmission
display \X0005 1578 #5^Eenquiry
display \X0006 12478 #6^Facknowledge
display \X0007 124578 #7^Gbell
display \X0008 12578 #8^Hbackspace
display \X0009  2478 #9^Ihorizontal tabulation
display \X000A  24578 #10^Jline feed
display \X000B 1378 #11^Kvertical tabulation
display \X000C 12378 #12^Lform feed
display \X000D 13478 #13^Mcarriage return
display \X000E 134578 #14^Nshift out
display \X000F 13578 #15^Oshift in
display \X0010 123478 #16^Pdata link escape
display \X0011 1234578 #17^Qdevice control one
display \X0012 123578 #18^Rdevice control two
display \X0013 23478 #19^Sdevice control three
display \X0014  234578 #20^Tdevice control four
display \X0015 13678 #21^Unegative acknowledge
display \X0016 123678 #22^Vsynchronous idle
display \X0017  245678 #23^Wend of transmission block
display \X0018 134678 #24^Xcancel
display \X0019 1345678 #25^Yend of medium
display \X001A 135678 #26^Zsubstitute
display \X001B  24678 #27^[escape
display \X001C 125678 #28^\file separator
display \X001D 1245678 #29^]group separator
display \X001E 4578 #30^^record separator
display \X001F 45678 #31^_unit separator

				#Hex	 Dots			Dec	Char	Description
display \X00A1 23467  #	161 ¡			inverted exclamation mark
display \X00A2 58			#162	¢			cent sign 
display \X00A3 34567  # 163	£			pound sign
display \X00A4 1467		# 164	¤			currency sign
display \X00A5 123467 # 165	¥			yen sign
display \X00A6 1567		# 166	¦			broken bar
display \X00A7 357		# 167	§			section sign
display \X00A8  57		# 168	¨			diaeresis
display \X00A9  23567 # 169	©			copyright sign
display \X00AA 8			# 170	ª			feminine ordinal indicator
display \X00AB 1267		# 171	«			left-pointing double angle quotation mark
display \X00AC  2567  # 172	¬			not sign
display \X00AD 367		# 173	­			soft hyphen
display \X00AE  2367  # 174	®			registered sign
display \X00AF  267		# 175	¯			macron
display \X00B0 3567		# 176	°			degree sign

display \X00C0  23578		# 192		À		Latin capital letter a with grave
display \X00C1	1678		# 193		Á		Latin capital letter a with acute
display \X00C2	16			# 194		Â		Latin capital letter a with circumflex
display \X00C3	578 # 195Ã Latin capital letter a with tilde
display \X00C4	1234678 # 196Ä Latin capital letter a with diaeresis
display \X00C5	34578 # 197Å Latin capital letter a with ring above
display \X00C6	378 # 198Æ Latin capital letter ae
display \X00C7	34678 # 199Ç Latin capital letter c with cedilla
display \X00C8  23567		#	200		È		Latin capital letter e with grave
display \X00C9	12678		# 201É Latin capital letter e with acute
display \X00CA  2378	# 202		Ê		Latin capital letter e with circumflex
display \X00CB 12345678 # 203Ë Latin capital letter e with diaeresis
display \X00CC  23678 # 204Ì Latin capital letter i with grave
display \X00CD 14678 # 205Í Latin capital letter i with acute
display \X00CE  2578	# 206		Î		Latin capital letter i with circumflex
display \X00CF 1235678 # 207Ï Latin capital letter i with diaeresis
display \X00D0 678 # 208Ð Latin capital letter eth
display \X00D1 4678 # 209Ñ Latin capital letter n with tilde
display \X00D2 3578 # 210Ò Latin capital letter o with grave
display \X00D3 145678 # 211Ó Latin capital letter o with acute
display \X00D4  25678 # 212		Ô		Latin capital letter o with circumflex
display \X00D5  5678 # 213Õ Latin capital letter o with tilde
display \X00D6  234678 # 214Ö Latin capital letter o with diaeresis
display \X00D7 167  # 215×multiplication sign
display \X00D8 3478 # 216Ø Latin capital letter o with stroke
display \X00D9 35678 # 217Ù Latin capital letter u with grave
display \X00DA 15678 # 218Ú Latin capital letter u with acute
display \X00DB  2678	# 219		Û		Latin capital letter u with circumflex
display \X00DC  2345678 # 220Ü Latin capital letter u with diaeresis
display \X00DD 124678 # 221Ý Latin capital letter y with acute
display \X00DE 3678 # 222Þ Latin capital letter thorn
display \X00DF 345678 # 223ß Latin small letter sharp s
display \X00E0  2358 # 224à Latin small letter a with grave
display \X00E1 168 # 225á Latin small letter a with acute
display \X00E2	16		# 226		â		Latin small letter a with circumflex
display \X00E3 58 # 227ã Latin small letter a with tilde
display \X00E4 123468 # 228ä Latin small letter a with diaeresis
display \X00E5 3458 # 229å Latin small letter a with ring above
display \X00E6 38 # 230æ Latin small letter ae
display \X00E7 3468 # 231ç Latin small letter c with cedilla
display \X00E8  23568 # 232è Latin small letter e with grave
display \X00E9 1268 # 233é Latin small letter e with acute
display \X00EA  238		# 234		ê		Latin small letter e with circumflex
display \X00EB 1234568 # 235ë Latin small letter e with diaeresis
display \X00EC  2368 # 236ì Latin small letter i with grave
display \X00ED 1468 # 237í Latin small letter i with acute
display \X00EE  258		# 238		î		Latin small letter i with circumflex
display \X00EF 123568 # 239ï Latin small letter i with diaeresis
display \X00F0 68 # 240ð Latin small letter eth
display \X00F1 468 # 241ñ Latin small letter n with tilde
display \X00F2 358 # 242ò Latin small letter o with grave
display \X00F3 14568 # 243ó Latin small letter o with acute
display \X00F4  2568	# 244		ô		Latin small letter o with circumflex
display \X00F5  568 # 245õ Latin small letter o with tilde
display \X00F6  23468 # 246ö Latin small letter o with diaeresis
display \X00F7 347  # 247÷division sign
display \X00F8 348 # 248ø Latin small letter o with stroke
display \X00F9 3568 # 249ù Latin small letter u with grave
display \X00FA 1568 # 250ú Latin small letter u with acute
display \X00FB  268		# 251		û		Latin small letter u with circumflex
display \X00FC  234568 # 252ü Latin small letter u with diaeresis
display \X00FD 12468 # 253ý Latin small letter y with acute
display \X00FE 368 # 254þ Latin small letter thorn
display \X00FF 34568 # 255ÿ Latin small letter y with diaeresis


display \X00BB 3457  # 187»right-pointing double angle quotation mark
display \X00B9  27  # 185¹superscript one
display \X00B2 237  # 178²superscript two
display \X00B3 257  # 179³superscript three
display \X00B1 3467  # 177±plus-minus sign
display \X00D7 167  # 215×multiplication sign

display \X00B7 467  # 183·middle dot

display \X00BF 14567  # 191¿inverted question mark


display \X00B6  2357  # 182	¶		pilcrow sign


#Hex Dots Dec Char Description
display \X00BC 123567  # 188¼vulgar fraction one quarter
display \X00BD 1234567  # 189½vulgar fraction one half
display \X00BE  234567  # 190¾vulgar fraction three quarters

# Each of the three extended accent characters is the same as its conventional
# compose character but with dot7 added:

#Hex Dots Dec Char Description
display \X00B4 37  # 180´acute accent
display \X00B8 67  # 184¸cedilla


# The two gender symbols are:

#Hex Dots Dec Char Description
display \X00BA 7  # 186ºmasculine ordinal indicator


# The three remaining characters are:

#Hex Dots Dec Char Description

display \X00B5  567  # 181µmicro sign


# The nonbreaking space is dots 7 and 8 because this presents a sequence of
# nonbreaking spaces as a smooth low line segment.

#Hex Dots Dec Char Description

