# liblouis: U.S. character-to-dot mapping.
#
#  Based on the Linux screenreader BRLTTY, copyright (C) 1999-2006 by
#  The BRLTTY Team
#
#  Copyright (C) 2004, 2005, 2006
#  ViewPlus Technologies, Inc. www.viewplus.com
#  and
#  JJB Software, Inc. www.jjb-software.com
#  All rights reserved
#
#  This file is free software; you can redistribute it and/or modify it
#   under the terms of the Lesser or Library GNU General Public License 
#  as published by the
#  Free Software Foundation; either version 3, 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 
#  Library GNU General Public License for more details.
#
#  You should have received a copy of the Library GNU General Public 
#  License along with this program; see the file COPYING.  If not, write 
#  to
#  the Free Software Foundation, 51 Franklin Street, Fifth Floor,
#  Boston, MA 02110-1301, USA.
#
#  Maintained by John J. Boyer john.boyer@abilitiessoft.com

display 0 356
display 1 2
display 2 23
display 3 25
display 4 256
display 5 26
display 6 235
display 7 2356
display 8 236
display 9 35
display ( 12356
display } 12456
display ] 124567
display ? 1456
display : 156
display ) 23456
display ! 2346
display { 246
display [ 2467
display ' 3
display - 36
display . 46
display " 5
display ; 56
display , 6
display & 12346
display $ 1246
display | 1256
display \\ 12567
display % 146
display * 16
display # 3456
display ` 4
display _ 456
display ^ 457
display @ 47
display = 123456
display < 126
display / 34
display > 345
display + 346
display ~ 45

