# liblouis: Korean Grade 2 (Contracted)
#
# 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, 2014 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 2:
include ko.cti
include ko-g2-rules.cti

