Commit 1b500656 authored by Emmanuel Bouthenot's avatar Emmanuel Bouthenot

Imported Upstream version 2.4.0

parent 08257388
.deps/
Makefile
Makefile.in
aclocal.m4
autom4te.cache/
config.h
config.h.in
config.log
config.status
configure
doc/doxyfile
include/sombok.h
libtool
sombok.pc
sombok.spec
stamp-h1
.libs/
doc/html/
*.la
*.lo
*.o
stamp-html
data/*.old
sombok
[submodule "test-data"]
path = test-data
url = https://github.com/hatukanezumi/sombok-test-data.git
The "Artistic License"
Preamble
The intent of this document is to state the conditions under which a
Package may be copied, such that the Copyright Holder maintains some
semblance of artistic control over the development of the package,
while giving the users of the package the right to use and distribute
the Package in a more-or-less customary fashion, plus the right to
make reasonable modifications.
Definitions
"Package" refers to the collection of files distributed by the
Copyright Holder, and derivatives of that collection of files
created through textual modification.
"Standard Version" refers to such a Package if it has not been
modified, or has been modified in accordance with the wishes of the
Copyright Holder as specified below.
"Copyright Holder" is whoever is named in the copyright or
copyrights for the package.
"You" is you, if you're thinking about copying or distributing this
Package.
"Reasonable copying fee" is whatever you can justify on the basis
of media cost, duplication charges, time of people involved, and so
on. (You will not be required to justify it to the Copyright
Holder, but only to the computing community at large as a market
that must bear the fee.)
"Freely Available" means that no fee is charged for the item
itself, though there may be fees involved in handling the item. It
also means that recipients of the item may redistribute it under
the same conditions they received it.
1. You may make and give away verbatim copies of the source form of
the Standard Version of this Package without restriction, provided
that you duplicate all of the original copyright notices and
associated disclaimers.
2. You may apply bug fixes, portability fixes and other modifications
derived from the Public Domain or from the Copyright Holder. A
Package modified in such a way shall still be considered the
Standard Version.
3. You may otherwise modify your copy of this Package in any way,
provided that you insert a prominent notice in each changed file
stating how and when you changed that file, and provided that you
do at least ONE of the following:
a. place your modifications in the Public Domain or otherwise make
them Freely Available, such as by posting said modifications to
Usenet or an equivalent medium, or placing the modifications on a
major archive site such as uunet.uu.net, or by allowing the
Copyright Holder to include your modifications in the Standard
Version of the Package.
b. use the modified Package only within your corporation or
organization.
c. rename any non-standard executables so the names do not conflict
with standard executables, which must also be provided, and
provide a separate manual page for each non-standard executable
that clearly documents how it differs from the Standard Version.
d. make other distribution arrangements with the Copyright Holder.
You may distribute the programs of this Package in object code or
executable form, provided that you do at least ONE of the following:
a. distribute a Standard Version of the executables and library
files, together with instructions (in the manual page or
equivalent) on where to get the Standard Version.
b. accompany the distribution with the machine-readable source of the
Package with your modifications.
c. give non-standard executables non-standard names, and clearly
document the differences in manual pages (or equivalent), together
with instructions on where to get the Standard Version.
d. make other distribution arrangements with the Copyright Holder.
You may charge a reasonable copying fee for any distribution of this
Package. You may charge any fee you choose for support of this
Package. You may not charge a fee for this Package itself. However,
you may distribute this Package in aggregate with other (possibly
commercial) programs as part of a larger (possibly commercial)
software distribution provided that you do not advertise this Package
as a product of your own. You may embed this Package's interpreter
within an executable of yours (by linking); this shall be construed as
a mere form of aggregation, provided that the complete Standard
Version of the interpreter is so embedded.
The scripts and library files supplied as input to or produced as
output from the programs of this Package do not automatically fall
under the copyright of this Package, but belong to whomever generated
them, and may be sold commercially, and may be aggregated with this
Package. If such scripts or library files are aggregated with this
Package via the so-called "undump" or "unexec" methods of producing a
binary executable image, then distribution of such an image shall
neither be construed as a distribution of this Package nor shall it
fall under the restrictions of Paragraphs 3 and 4, provided that you
do not represent such an executable image as a Standard Version of
this Package.
C subroutines (or comparably compiled subroutines in other
languages) supplied by you and linked into this Package in order to
emulate subroutines and variables of the language defined by this
Package shall not be considered part of this Package, but are the
equivalent of input as in Paragraph 6, provided these subroutines do
not change the language in any way that would cause it to fail the
regression tests for the language.
Aggregation of this Package with a commercial distribution is always
permitted provided that the use of this Package is embedded; that is,
when no overt attempt is made to make this Package's interfaces
visible to the end user of the commercial distribution. Such use shall
not be construed as a distribution of this Package.
The name of the Copyright Holder may not be used to endorse or
promote products derived from this software without specific prior
written permission.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
The End
Hatuka*nezumi - IKEDA Soji <hatuka@nezumi.nu>
This diff is collapsed.
This diff is collapsed.
2011.0 Xxx Xxx XX XXXX
* RENAMED library name from linebreak to sombok.
* Imp: lib/utils.c: Built-in callbacks.
* Chg: urgent_func callback takes two arguments, not five.
* Chg: sizing_func callback with extra 6th argument was obsoleted.
* Chg: default sizing method simply returns number of grapheme
cluster, not column number based on UAX11.
* Bug Fix: memory leaks & potential buffer overruns in
linebreak_break_partial().
1.10 Sat Jan 01 2011
* Added LINEBREAK_OPTION_BREAK_INDENT option.
* Fix SA segmentaion behavior.
1.9 Wed Dec 29 2010
* BUG FIX: broken pair tables.
* updated config.sub & config.guess.
1.8.2 Mon Nov 01 2010
* Win32: typo in lib/Makefile.mingw
1.8.1 Mon Oct 11 2010
* update Unicode data to version 6.0.0.
* update config.sub & config.guess.
* renamed: include/linebreak_defs.h, libinebreak.
* added linebreak.spec.in.
* removed autogen.sh, linebreak_constants.h.in.
* added Makefile's for MinGW (testing).
* Chg: added linebreak_propvals_?? variables to tell application layer
possible property values.
1.5 Wed Dec 30 2009
* gcstring_t: added new member elbc to describe non-CM LBC at
after-side of grapheme cluster.
* Chg: On <Prepend X>, set LBC of prepend character to lbc member
and LBC of X to elbc member.
* Use compact array instead of hash table.
* update config.sub/config.guess to support Dragonfly etc.
* patched config.sub/config.guess to support MidnightBSD.
1.4.p1 Thu Oct 29 2009
* southeastasian.c: Added assert() to check broken libthai.
* Fix: break.c: NULL arguments for _sizing() and _urgent_break() may
cause segfault in user-defined functions.
* Supports pkg-config.
* Added documentations.
1.4 Sun Oct 18 2009
* Fix: break.c: Custom function won't be used when user data is NULL.
* Imp: linebreak_charprop(): Complement GCB property for characters
with tailored LB property.
* Fix: gcstring_new(): Too large memory allocation.
* New: gcstring_newcopy().
1.3 Thu Oct 15 2009
* Fix: linebreak_break_partial(): Memory leak saving status.
* Fix: linebreak_break_partial(): Fix state transition.
* Fix: gcstring_cmp(): Case of comparison with zero length string.
* New: linebreak_break() and linebreak_break_fast(). Latter consumes
heap size proportional to length of input. linebreak_break() is
highly recommended.
* Chg: linebreak_break*() get unistr_t * input then return unistr_t *.
* break.c: Cleanup codes.
=================
Installing Sombok
=================
Prerequisites
=============
* ANSI C compiler, for example GCC C Compiler, is required.
* Optionally, libthai package need to be installed to support Thai
word segmentation:
http://linux.thai.net/projects/libthai
In this case pkg-config is also required.
Install
=======
Extract tarball then run as follows:
./configure [options...]
make
make check
make install
``./configure --help`` will show available options.
======================
ソンボクのインストール
======================
要件
====
* ANSI C コンパイラ (たとえば GCC C Compiler) が要ります。
* 必須ではありませんが、タイ語の単語分節に対応するには libthai パッケー
ジをインストールする必要があります。次の場所で入手できます。
http://linux.thai.net/projects/libthai
この場合、pkg-config も要ります。
インストール
============
配布物を展開し、次のように実行します。
./configure [オプション……]
make
make check
make install
``./configure --help`` を実行すれば、どんなオプションが使えるかわかりま
す。
lib_LTLIBRARIES = libsombok.la
libsombok_la_SOURCES = lib/break.c lib/charprop.c lib/gcstring.c \
lib/linebreak.c lib/utf8.c lib/utils.c \
lib/southeastasian.c lib/@UNICODE_VERSION@.c
if MALLOC_DEBUG
libsombok_la_SOURCES += src/mymalloc.c
endif
libsombok_la_CFLAGS = -I. -Iinclude @LIBTHAI_CFLAGS@
libsombok_la_LDFLAGS = -version-info 4:7:1 @LIBTHAI_LIBS@
include_HEADERS = include/sombok_constants.h
nodist_include_HEADERS = include/sombok.h
noinst_HEADERS = src/mymalloc.h
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = sombok.pc
check_PROGRAMS = sombok
sombok_SOURCES = src/sombok.c
if !HAVE_STRERROR
sombok_SOURCES += src/strerror.c
endif
if !HAVE_STRCASECMP
sombok_SOURCES += src/strcasecmp.c
endif
sombok_CFLAGS = -Iinclude
sombok_LDFLAGS =
sombok_LDADD = libsombok.la
TESTS = tests/*.t
if ENABLE_DOC
html_DATA = doc/html/*
MOSTLYCLEANFILES = stamp-html $(html_DATA)
$(html_DATA): stamp-html
stamp-html: doc/doxyfile $(include_HEADERS) $(nodist_include_HEADERS) \
$(libsombok_la_SOURCES)
$(DOXYGEN) doc/doxyfile
touch stamp-html
endif
EXTRA_DIST = sombok.spec debian/* \
lib/?.?.?.c \
tests/lb.sh $(TESTS) test-data/* \
data/makefile data/constants.pl data/custom.pl data/data.pl \
data/*.custom data/Rules-*.txt data/LBCLASSES \
ARTISTIC ChangeLog.REL1 INSTALL.ja_JP README.ja_JP \
UNICODE VERSION
2.3.2 2014-XX-XX
- Supports Unicode 7.0.0.
2.3.1 2013-09-28
- Supports Unicode 6.3.0.
2.3.0 2012-10-01
- Supports Unicode 6.2.0.
2.2.0 2012-04-02
- License Change:
From now on, sombok is distributed under dual license of GPL
*and* Artistic License.
2.1.0 2011-02-04
- Supports Unicode 6.1.0.
2.0.5 2011-04-23
- Bug Fix: Infinite loop occurs when prep_func generated very long
(> charmax) unbreakable line.
- linebreak_prep_URIBREAK(): loosely refers RFC3986.
==========================================
Sombok - Unicode Text Segmentation Package
==========================================
Sombok is Copyright (C) 2009-2014, by Hatuka*nezumi - IKEDA Soji.
It is free software; you can redistribute it and/or modify it under the
terms of either:
a) the GNU General Public License as published by the Free Software
Foundation; either version 1, or (at your option) any later version,
or
b) the "Artistic License".
----
See the COPYING and the ARTISTIC files for more details.
What is this
============
Sombok library package performs Line Breaking Algorithm described in
Unicode Standard Annex #14 (UAX #14). East_Asian_Width informative
properties defined by Annex #11 (UAX #11) may be concerned to determin
breaking positions. This package also implements "default" Grapheme
Cluster segmentation described in Annex #29 (UAX #29).
Getting Sombok
==============
You can get Sombok from:
https://github.com/hatukanezumi/sombok.git
Installing
==========
See INSTALL.
Name
====
"Sombok" (or "sambak") is Korean onomatopeic word to represent "cutting
cleanly". It is not connected to Khmer word "sombok" nor Afrikaans word
"sjambok".
Language bindings
=================
Perl
Unicode-LineBreak: http://search.cpan.org/dist/Unicode-LineBreak/
Python
pytextseg: http://pypi.python.org/pypi/pytextseg/
Author
======
Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>.
=========================================
Sombok - ユニコードテキスト分節パッケージ
=========================================
Sombok is Copyright (C) 2009-2014, by Hatuka*nezumi - IKEDA Soji.
It is free software; you can redistribute it and/or modify it under the
terms of either:
a) the GNU General Public License as published by the Free Software
Foundation; either version 1, or (at your option) any later version,
or
b) the "Artistic License".
----
See the COPYING and the ARTISTIC files for more details.
これはなにか
============
ソンボク (sombok) ライブラリパッケージは、ユニコード標準附属書14 (UAX
#14) に述べる「ユニコード行分割アルゴリズム」を実行できます。附属書11
(UAX #11) で定義する East_Asian_Width 参考特性を考慮して行分割位置を決定
できます。またこのパッケージでは、附属書29 (UAX #29) で述べる「初期の」
書記素クラスタをも実装しています。
ソンボクの入手
==============
ソンボクは次の場所で入手できます。
https://github.com/hatukanezumi/sombok.git
インストール
============
INSTALL.ja_JP を参照。
名前
====
「ソンボク」の名は、朝鮮語で「すぱっと切る」という様子を表す擬態語 (「サ
ンバク」も使います) にちなんでいます。クメール語の「ソンボック」や
アフリカーンス語の「シャンボク」とは関係ありません。
言語バインディング
==================
Perl
Unicode-LineBreak: http://search.cpan.org/dist/Unicode-LineBreak/
Python
pytextseg: http://pypi.python.org/pypi/pytextseg/
著者
====
Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>.
ToDo on next major release:
- offset, length or pos arguments of gcstring_setpos(), gcstring_shrink(),
gcstring_substr(), gcstring_replace(), gcstring_lbclass() and
gcstring_lbclass_ext() would be ssize_t, not int.
- Following functions would be deprecated:
- linebreak_lbrule
- linebreak_set_user and user_func/user_data members
- linebreak_lbclass
- linebreak_eawidth
- Separated libraries for character database, grapheme cluster segmentation
and line breaking.
This diff is collapsed.
This diff is collapsed.
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(sombok, m4_esyscmd([cat VERSION | tr -d '\n']), hatuka@nezumi.nu)
DEFAULT_UNICODE_VERSION="m4_esyscmd([cat UNICODE | tr -d '\n'])"
LPATH="$PATH:/usr/local/bin"
AM_INIT_AUTOMAKE
AC_CONFIG_HEADER([config.h])
dnl AC_CONFIG_MACRO_DIR([m4])
# Checks for programs.
AC_PROG_MAKE_SET
AM_PROG_LIBTOOL
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_CC
AM_PROG_CC_C_O
# Checks for libraries.
dnl AM_ICONV
# Checks for header files.
dnl AC_HEADER_STDC
AC_CHECK_HEADERS([errno.h stdlib.h stddef.h string.h wchar.h strings.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
# Checks for library functions.
dnl AC_FUNC_MALLOC
AC_CHECK_FUNCS([strerror])
AM_CONDITIONAL(HAVE_STRERROR, [test "$ac_cv_func_strerror" = "yes"])
AC_CHECK_FUNCS([strcasecmp])
AM_CONDITIONAL(HAVE_STRCASECMP, [test "$ac_cv_func_strcasecmp" = "yes"])
PKG_CHECK_MODULES(LIBTHAI, [libthai],
[LIBTHAI="libthai/`$PKG_CONFIG --modversion libthai`"], [LIBTHAI=])
AC_MSG_CHECKING(whether libthai support enabled)
AC_ARG_ENABLE(libthai,
AC_HELP_STRING(--disable-libthai, [disable libthai support]),
[],
[enable_libthai=yes])
if test -z "$LIBTHAI"
then
enable_libthai=no
fi
if test "$enable_libthai" = "no"
then
AC_MSG_RESULT(no.)
else
AC_DEFINE_UNQUOTED(USE_LIBTHAI, "$LIBTHAI",
[ Set this to use libthai library. ])
AC_SUBST(LIBTHAI_CFLAGS)
AC_SUBST(LIBTHAI_LIBS)
AC_MSG_RESULT($LIBTHAI)
fi
# determine type of Unicode character
AC_MSG_RESULT(checking what type to be used for Unicode character...)
if test "$ac_cv_header_wchar_h" = "yes"
then
INCLUDE_WCHAR_H='#include <wchar.h>'
else
INCLUDE_WCHAR_H=
fi
AC_CHECK_SIZEOF([wchar_t], 2, [$INCLUDE_WCHAR_H])
AC_CHECK_SIZEOF([unsigned int], 4)
AC_CHECK_SIZEOF([unsigned long], 8)
AC_ARG_WITH(unicode-type,
AC_HELP_STRING(--with-unicode-type=TYPE,
[type of Unicode character @<:@default=auto@:>@]),
SOMBOK_UNICHAR_T="$withval", SOMBOK_UNICHAR_T=)
if test x"$SOMBOK_UNICHAR_T" = x
then
if test "$ac_cv_sizeof_unsigned_int" -ge "4"
then
SOMBOK_UNICHAR_T="unsigned int"
else
SOMBOK_UNICHAR_T="unsigned long"
fi
fi
AC_CHECK_SIZEOF([unichar_t], 4,
[$INCLUDE_WCHAR_H
typedef $SOMBOK_UNICHAR_T unichar_t;])
if test "$ac_cv_sizeof_unichar_t" -lt "4"
then
AC_MSG_ERROR([sizeof(unichar_t) must not be smaller than 4.])
fi
if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_wchar_t"
then
SOMBOK_UNICHAR_T_IS_WCHAR_T='#define SOMBOK_UNICHAR_T_IS_WCHAR_T'
else
SOMBOK_UNICHAR_T_IS_WCHAR_T='#undef SOMBOK_UNICHAR_T_IS_WCHAR_T'
fi
if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_unsigned_int"
then
SOMBOK_UNICHAR_T_IS_UNSIGNED_INT='#define SOMBOK_UNICHAR_T_IS_UNSIGNED_INT'
else
SOMBOK_UNICHAR_T_IS_UNSIGNED_INT='#undef SOMBOK_UNICHAR_T_IS_UNSIGNED_INT'
fi
if test "$ac_cv_sizeof_unichar_t" = "$ac_cv_sizeof_unsigned_long"
then
SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG='#define SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG'
else
SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG='#undef SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG'
fi
AC_MSG_RESULT([$SOMBOK_UNICHAR_T])
AC_SUBST(SOMBOK_UNICHAR_T)
AC_SUBST(SOMBOK_UNICHAR_T_IS_WCHAR_T)
AC_SUBST(SOMBOK_UNICHAR_T_IS_UNSIGNED_INT)
AC_SUBST(SOMBOK_UNICHAR_T_IS_UNSIGNED_LONG)
# determin version of Unicode Standard
AC_MSG_RESULT(checking what version of Unicode Standard will be used...)
AC_ARG_WITH(unicode-version,
AC_HELP_STRING(--with-unicode-version=VERSION,
[version of Unicode Standard @<:@default=current version@:>@]),
UNICODE_VERSION=$withval,UNICODE_VERSION=$DEFAULT_UNICODE_VERSION)
AC_CHECK_FILE([lib/$UNICODE_VERSION.c],
AC_MSG_RESULT($UNICODE_VERSION),
AC_MSG_ERROR(Unknown Unicode version $UNICODE_VERSION.))
AC_SUBST(UNICODE_VERSION)
# check if code to debug memory allocation is enabled.
AC_ARG_ENABLE(malloc-debug,
AC_HELP_STRING(--enable-malloc-debug,
[enable codes to debug memory allocation/deallocation]),
[MALLOC_DEBUG=yes],
[])
AM_CONDITIONAL(MALLOC_DEBUG, [test "$MALLOC_DEBUG" = "yes"])
if test "$MALLOC_DEBUG" = "yes"
then
AC_MSG_RESULT(use mymalloc.)
AC_DEFINE_UNQUOTED(MALLOC_DEBUG, "$MALLOC_DEBUG",
[ Set this to use mymalloc wrapper. ])
AC_SUBST(MALLOC_DEBUG)
fi
AC_MSG_CHECKING(what shell program will be used)
AC_ARG_WITH(shell-program,
AC_HELP_STRING(--with-shell-program=PROGRAM,
[shell program used by test suite @<:@default=auto@:>@]),
sombok_shell_program=$withval,sombok_shell_program=none)
if test "$sombok_shell_program" '!=' "none" -a \
"`basename $sombok_shell_program`" = "$sombok_shell_program"
then
sombok_names="$sombok_shell_program"
sombok_shell_program="none"
else
sombok_names="sh ash dash bash bash2 ksh dtksh pdksh"
fi
if test "$sombok_shell_program" = "none"
then
for sombok_path in /bin /usr/bin /usr/sfw/bin /usr/xpg4/bin /usr/dt/bin \
/usr/local/bin /usr/gnu/bin
do
for sombok_name in $sombok_names
do
if test -x "$sombok_path/$sombok_name"
then
if test "`$sombok_path/$sombok_name -c 'echo $1' arg0 arg1`" = "arg1"
then
sombok_shell_program="$sombok_path/$sombok_name"
AC_DEFINE_UNQUOTED(SHELL_PROGRAM, "$sombok_shell_program",
[ Shell program. ])
AC_DEFINE_UNQUOTED(SHELL_NAME, "$sombok_name",
[ Name of shell. ])
break
fi
fi
done
if test "$sombok_shell_program" '!=' "none"
then
break
fi
done
fi
AC_MSG_RESULT($sombok_shell_program)
AC_ARG_ENABLE(doc,
[AC_HELP_STRING([--disable-doc],
[disable document generation])],
ENABLE_DOC="$enableval", ENABLE_DOC="yes")
if test "$ENABLE_DOC" = "yes"
then
AC_CHECK_PROG(DOXYGEN,doxygen,doxygen,no)
if test "$DOXYGEN" = "no"
then
ENABLE_DOC="no"
fi
fi
AM_CONDITIONAL(ENABLE_DOC,test "$ENABLE_DOC" = "yes")
if test "x$docdir" = "x"
then
docdir="$datadir/doc/$PACKAGE_NAME-$PACKAGE_VERSION"
fi
if test "x$htmldir" = "x"
then
htmldir="$docdir/html"
fi
AC_SUBST(docdir)
AC_SUBST(htmldir)
AC_CONFIG_FILES(Makefile include/sombok.h sombok.pc sombok.spec doc/doxyfile)
AC_OUTPUT
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
%indexedclasses = (
'lb' => {
'5.1.0' => [qw(BK CR LF NL SP OP CL CP QU GL NS EX SY IS PR PO NU AL HL ID IN HY BA BB B2 ZW CM WJ H2 H3 JL JV JT RI CB)],
'5.2.0' => [qw(BK CR LF NL SP OP CL CP QU GL NS EX SY IS PR PO NU AL HL ID IN HY BA BB B2 ZW CM WJ H2 H3 JL JV JT RI CB)],
'6.0.0' => [qw(BK CR LF NL SP OP CL CP QU GL NS EX SY IS PR PO NU AL HL ID IN HY BA BB B2 ZW CM WJ H2 H3 JL JV JT RI CB)],
'6.1.0' => [qw(BK CR LF NL SP OP CL CP QU GL NS EX SY IS PR PO NU AL HL ID IN HY BA BB B2 ZW CM WJ H2 H3 JL JV JT RI CB)],
'6.2.0' => [qw(BK CR LF NL SP OP CL CP QU GL NS EX SY IS PR PO NU AL HL ID IN HY BA BB B2 ZW CM WJ H2 H3 JL JV JT RI CB)],
'6.3.0' => [qw(BK CR LF NL SP OP CL CP QU GL NS EX SY IS PR PO NU AL HL ID IN HY BA BB B2 ZW CM WJ H2 H3 JL JV JT RI CB)],
'7.0.0' => [qw(BK CR LF NL SP OP CL CP QU GL NS EX SY IS PR PO NU AL HL ID IN HY BA BB B2 ZW CM WJ H2 H3 JL JV JT RI CB)],
'8.0.0' => [qw(BK CR LF NL SP OP CL CP QU GL NS EX SY IS PR PO NU AL HL ID IN HY BA BB B2 ZW CM WJ H2 H3 JL JV JT RI CB)],