# liblouis: Letters with accents (without ä ö ü) - Germany, Austria
#
#  Copyright (C) 2009 SBS Schweizerische Bibliothek für Blinde und Sehbehinderte
#
#  This file is part of liblouis.
#
#  liblouis 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.
#
#  liblouis 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 liblouis. If not, see
#  <http://www.gnu.org/licenses/>.
#
#-------------------------------------------------------------------------------
#
#  Letters with accents (without ä ö ü) - Germany, Austria
#
#  Version 11-17-09
#  christian.waldvogel@sbszh.ch
#
#-------------------------------------------------------------------------------

uplow Àà 4-1 \x00C0 &#192;  LATIN LETTER A WITH GRAVE
uplow Áá 4-1 \x00C1 &#193;  LATIN LETTER A WITH ACUTE
uplow Ââ 4-1 \x00C2 &#194;  LATIN LETTER A WITH CIRCUMFLEX
uplow Ãã 4-1 \x00C3 &#195;  LATIN LETTER A WITH TILDE

uplow Åå 4-1 \x00C5 &#197;  LATIN LETTER A WITH RING ABOVE
uplow Ææ 1-15 \x00C6 &#198;  LATIN LETTER AE
uplow Çç 4-14 \x00C7 &#199;  LATIN LETTER C WITH CEDILLA
uplow Èè 4-15 \x00C8 &#200;  LATIN LETTER E WITH GRAVE
uplow Éé 4-15 \x00C9 &#201;  LATIN LETTER E WITH ACUTE
uplow Êê 4-15 \x00CA &#202;  LATIN LETTER E WITH CIRCUMFLEX
uplow Ëë 4-15 \x00CB &#203;  LATIN LETTER E WITH DIAERESIS
uplow Ìì 4-24 \x00CC &#204;  LATIN LETTER I WITH GRAVE
uplow Íí 4-24 \x00CD &#205;  LATIN LETTER I WITH ACUTE
uplow Îî 4-24 \x00CE &#206;  LATIN LETTER I WITH CIRCUMFLEX
uplow Ïï 4-24 \x00CF &#207;  LATIN LETTER I WITH DIAERESIS
uplow Ðð 4-145 \x00D0 &#208;  LATIN LETTER ETH
uplow Ññ 4-1345 \x00D1 &#209;  LATIN LETTER N WITH TILDE
uplow Òò 4-135 \x00D2 &#210;  LATIN LETTER O WITH GRAVE
uplow Óó 4-135 \x00D3 &#211;  LATIN LETTER O WITH ACUTE
uplow Ôô 4-135 \x00D4 &#212;  LATIN LETTER O WITH CIRCUMFLEX
uplow Õõ 4-135 \x00D5 &#213;  LATIN LETTER O WITH TILDE

uplow Øø 4-135 \x00D8 &#216;  LATIN LETTER O WITH STROKE
uplow Ùù 4-136 \x00D9 &#217;  LATIN LETTER U WITH GRAVE
uplow Úú 4-136 \x00DA &#218;  LATIN LETTER U WITH ACUTE
uplow Ûû 4-136 \x00DB &#219;  LATIN LETTER U WITH CIRCUMFLEX

uplow Ýý 4-13456 \x00DD &#221;  LATIN LETTER Y WITH ACUTE
uplow Þþ 4-2345 \x00DE &#222;  LATIN LETTER THORN

lowercase ÿ 4-13456 \x00FF &#255;  LATIN SMALL LETTER Y WITH DIAERESIS

uplow \x0152\x0153 135-15 &#338;  LATIN LIGATURE OE
