# liblouis: Korean Grade 1 (Uncontracted)
#
# Based on the braille contraction table in BRLTTY
#
#  Copyright (C) 1995-2012 by The BRLTTY Team.
#  Copyright (C) 2012 by Samuel Thibault <samuel.thibault@ens-lyon.org>
#  Copyright (C) 2012 by Mesar Hameed <mesar.hameed@gmail.com>
#  Copyright (C) 2013 by Joseph Lee <joseph.lee22590@gmail.com>
#
#  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/>.

#Rules specific to grade 1:
include ko.cti
include ko-g1-rules.cti

