# liblouis: Korean Grade 1 (Uncontracted, 2006 edition)
#
# 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 <mhameed@src.gnome.org>
#  Copyright (C) 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/>.

#Same as ko-g1.ctb except it includes ko-2006 dictionary.
include ko-2006.cti
include ko-g1-rules.cti

