Merge branch 'upstream' into tizen
authorYoungbok Shin <youngb.shin@samsung.com>
Mon, 22 Aug 2016 07:12:41 +0000 (16:12 +0900)
committerYoungbok Shin <youngb.shin@samsung.com>
Mon, 22 Aug 2016 07:12:41 +0000 (16:12 +0900)
126 files changed:
BUILD.md
ChangeLog
NEWS
configure
configure.ac
docs/html/adding-text-to-the-buffer.html
docs/html/annotation-glossary.html
docs/html/api-index-0-9-10.html
docs/html/api-index-0-9-11.html
docs/html/api-index-0-9-2.html
docs/html/api-index-0-9-20.html
docs/html/api-index-0-9-22.html
docs/html/api-index-0-9-28.html
docs/html/api-index-0-9-30.html
docs/html/api-index-0-9-31.html
docs/html/api-index-0-9-38.html
docs/html/api-index-0-9-39.html
docs/html/api-index-0-9-41.html
docs/html/api-index-0-9-42.html
docs/html/api-index-0-9-5.html
docs/html/api-index-0-9-7.html
docs/html/api-index-0-9-8.html
docs/html/api-index-1-0-5.html
docs/html/api-index-1-1-2.html
docs/html/api-index-1-1-3.html
docs/html/api-index-full.html
docs/html/buffers-language-script-and-direction.html
docs/html/building.html
docs/html/ch07.html
docs/html/customizing-unicode-functions.html
docs/html/deprecated-api-index.html
docs/html/fonts-and-faces.html
docs/html/harfbuzz-Buffers.html
docs/html/harfbuzz-Shaping.html
docs/html/harfbuzz-hb-blob.html
docs/html/harfbuzz-hb-common.html
docs/html/harfbuzz-hb-coretext.html
docs/html/harfbuzz-hb-deprecated.html
docs/html/harfbuzz-hb-face.html
docs/html/harfbuzz-hb-font.html
docs/html/harfbuzz-hb-ft.html
docs/html/harfbuzz-hb-glib.html
docs/html/harfbuzz-hb-gobject.html
docs/html/harfbuzz-hb-graphite2.html
docs/html/harfbuzz-hb-icu.html
docs/html/harfbuzz-hb-ot-font.html
docs/html/harfbuzz-hb-ot-layout.html
docs/html/harfbuzz-hb-ot-shape.html
docs/html/harfbuzz-hb-ot-tag.html
docs/html/harfbuzz-hb-ot.html
docs/html/harfbuzz-hb-set.html
docs/html/harfbuzz-hb-shape-plan.html
docs/html/harfbuzz-hb-unicode.html
docs/html/harfbuzz-hb-uniscribe.html
docs/html/harfbuzz-hb-version.html
docs/html/harfbuzz-hb.html
docs/html/harfbuzz.devhelp2
docs/html/hello-harfbuzz.html
docs/html/home.png
docs/html/index.html
docs/html/index.sgml [new file with mode: 0644]
docs/html/install-harfbuzz.html
docs/html/left-insensitive.png
docs/html/left.png
docs/html/object-tree.html
docs/html/plans-and-caching.html
docs/html/pt01.html
docs/html/pt02.html
docs/html/right-insensitive.png
docs/html/right.png
docs/html/setting-buffer-properties.html
docs/html/shaping-and-shape-plans.html
docs/html/style.css
docs/html/up-insensitive.png
docs/html/up.png
docs/html/using-harfbuzzs-native-opentype-implementation.html
docs/html/using-your-own-font-functions.html
docs/html/what-about-the-other-scripts.html
docs/html/what-is-harfbuzz.html
docs/html/why-is-it-called-harfbuzz.html
docs/version.xml
src/gen-indic-table.py
src/gen-use-table.py
src/hb-buffer.cc
src/hb-common.cc
src/hb-common.h
src/hb-coretext.cc
src/hb-directwrite.cc
src/hb-directwrite.h
src/hb-font-private.hh
src/hb-font.cc
src/hb-ft.cc
src/hb-gobject-structs.h
src/hb-ot-font.cc
src/hb-ot-layout-gsub-table.hh
src/hb-ot-layout-gsubgpos-private.hh
src/hb-ot-layout.cc
src/hb-ot-shape-complex-arabic-table.hh
src/hb-ot-shape-complex-indic-machine.hh
src/hb-ot-shape-complex-indic-machine.rl
src/hb-ot-shape-complex-indic-private.hh
src/hb-ot-shape-complex-indic-table.cc
src/hb-ot-shape-complex-indic.cc
src/hb-ot-shape-complex-myanmar-machine.hh
src/hb-ot-shape-complex-myanmar.cc
src/hb-ot-shape-complex-private.hh
src/hb-ot-shape-complex-use-machine.hh
src/hb-ot-shape-complex-use-machine.rl
src/hb-ot-shape-complex-use-private.hh
src/hb-ot-shape-complex-use-table.cc
src/hb-ot-shape-complex-use.cc
src/hb-private.hh
src/hb-shape.cc
src/hb-ucdn.cc
src/hb-ucdn/README
src/hb-ucdn/ucdn.c
src/hb-ucdn/ucdn.h
src/hb-ucdn/unicodedata_db.h
src/hb-unicode-private.hh
src/hb-unicode.h
src/hb-version.h
test/shaping/fonts/sha1sum/6ff0fbead4462d9f229167b4e6839eceb8465058.ttf [new file with mode: 0644]
test/shaping/hb_test_tools.py
test/shaping/tests/use.tests
test/shaping/texts/in-tree/shaper-indic/south-east-asian/script-javanese/misc.txt [new file with mode: 0644]
win32/config.h.win32

index 86285c6..7518c2e 100644 (file)
--- a/BUILD.md
+++ b/BUILD.md
@@ -1,5 +1,4 @@
-On Linux, install the development packages for
-[FreeType](http://www.freedesktop.org/wiki/Software/FreeType/),
+On Linux, install the development packages for FreeType,
 Cairo, and GLib. For example, on Ubuntu / Debian, you would do:
 * sudo apt-get install gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev
 
@@ -30,4 +29,8 @@ on the Mac, using MacPorts:
 * sudo port install autoconf automake libtool pkgconfig ragel gtk-doc
 
 or using Homebrew:
-* brew port install autoconf automake libtool pkgconfig ragel gtk-doc
+* brew install autoconf automake libtool pkgconfig ragel gtk-doc
+
+To build the Python bindings, you also need:
+
+* brew install pygobject3
index 33749c7..106d1e8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,579 @@
+commit 08c08af2f9ed683ad20322c3ef1ba0f87ce15426
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Thu Jul 21 01:23:33 2016 -0700
+
+    [ucdn] Update to Unicode 9.0.0
+
+    Fixes https://github.com/grigorig/ucdn/issues/12
+
+ src/hb-ucdn.cc               |    6 +
+ src/hb-ucdn/README           |    1 -
+ src/hb-ucdn/ucdn.c           |   80 +-
+ src/hb-ucdn/ucdn.h           |   98 +-
+ src/hb-ucdn/unicodedata_db.h | 4750
+ +++++++++++++++++++++++-------------------
+ 5 files changed, 2783 insertions(+), 2152 deletions(-)
+
+commit f3f6c1ccbf89e15cda03e0c3a2df4297e98adf60
+Author: jfkthame <jfkthame@gmail.com>
+Date:   Thu Jun 16 00:10:42 2016 +0100
+
+    Blacklist GDEF tables of more fonts
+
+    This is based on bug reports that have been filed against Firefox
+    since it
+    updated to a version of harfbuzz that uses zeroing by GDEF rather
+    than by
+    Unicode. I'm sure there are a bunch more font versions that should
+    also be
+    included; these are just the ones I have on hand and have confirmed
+    as having
+    bad GDEF data.
+
+    Given how the list here is growing, I think we should reconsider
+    the approach,
+    and perhaps revert to zeroing by Unicode instead.
+
+    Fixes https://github.com/behdad/harfbuzz/issues/264
+    Fixes https://github.com/behdad/harfbuzz/pull/266
+
+ src/hb-ot-layout.cc | 39 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 39 insertions(+)
+
+commit 34f9aa582c3a03b578c7eae3d2e8860a0bd5cb00
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Wed Jul 20 02:35:54 2016 -0700
+
+    Implement symbol cmap in ft and ot fonts
+
+    Fixes https://github.com/behdad/harfbuzz/issues/236
+    Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=627953
+
+ src/hb-ft.cc      | 27 +++++++++++++++++++++++----
+ src/hb-ot-font.cc | 50 ++++++++++++++++++++++++++++++++++++++------------
+ 2 files changed, 61 insertions(+), 16 deletions(-)
+
+commit 6363d7df28dc4307ef1abb9857d14c35e656b85a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Wed Jul 20 01:43:56 2016 -0700
+
+    Clean up buffer area when rewinding
+
+    Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=614647
+    If allocation fails, we might be leaving junk behind.  At least
+    clear it up.
+
+ src/hb-buffer.cc | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+commit f80c34eb556d12c45c961d6742c289baef58899d
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Tue Jul 12 11:18:26 2016 -0700
+
+    Whitespace
+
+ src/hb-unicode-private.hh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 874421203e0161db2cbfb27be6c039cba57f7c63
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date:   Tue Jul 12 03:49:21 2016 +0430
+
+    [coretext] Speculative fix for CoreText nullptr access (#288)
+
+ src/hb-coretext.cc | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+commit 6bf9db4f1e1d51f9acb5e37b89caa8f4d275e7ce
+Author: Birunthan Mohanathas <birunthan@mohanathas.com>
+Date:   Mon Jul 11 13:38:23 2016 -0700
+
+    [ft] Fix unsafe cast of FT_Done_Face in
+    hb_ft_{face,font}_create_referenced (#289)
+
+    Prior to this change the function `FT_Error FT_Done_Face(FT_Face
+    *)` was
+    called through a pointer with the signature `void (void *)`
+    resulting in
+    undefined behaviour.
+
+ src/hb-ft.cc | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+commit 0b8f3ab0220ca4731516313828515f26bb480645
+Author: Steve Lhomme <slhomme@matroska.org>
+Date:   Mon Jul 11 21:57:26 2016 +0200
+
+    clang in MSVC mode doesn't like when we redefine __attribute__ (#283)
+
+ src/hb-private.hh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 2f522fd485c2e946c9bce9e3828b6ff6247c59e4
+Merge: d3e2a06 e4d451e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Fri Jul 1 17:09:28 2016 -0700
+
+    Merge pull request #286 from khaledhosny/gi-tag_from_string
+
+    [introspection] Fix hb_tag_from_string annotation
+
+commit e4d451ee55a57e1231b4076fcd1e87994f6b9528
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date:   Sat Jul 2 00:04:57 2016 +0200
+
+    [introspection] Fix hb_tag_from_string annotation
+
+ src/hb-common.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit d3e2a06b0f2587e913a9c3ff1a20c187f260db80
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Thu Jun 30 11:01:22 2016 -0700
+
+    [python] Use utf-32 / utf-16 based on build of Python
+
+    Fixes https://github.com/behdad/harfbuzz/pull/271
+
+ src/sample.py | 22 +++++++++++++++++++++-
+ 1 file changed, 21 insertions(+), 1 deletion(-)
+
+commit fc9de44a03a97f6e93bd98d804596cb1f9f4b5fd
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Thu Jun 30 09:46:52 2016 -0700
+
+    Comments
+
+ src/hb-coretext.cc | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+commit 46809dee30232d493539519b1bb527fa816c37db
+Merge: 70e72e5 1bea49e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Thu Jun 30 09:41:03 2016 -0700
+
+    Merge pull request #268 from drott/conflictingFontFix
+
+    Discard reconfigured CTFont if URL changes
+
+commit 1bea49eb4b7a94ab6222f9c3c40320cbdb247b2d
+Merge: 7aa3631 70e72e5
+Author: Dominik Röttsches <d-r@roettsches.de>
+Date:   Wed Jun 29 12:10:41 2016 +0200
+
+    Merge branch 'master' into conflictingFontFix
+
+commit 70e72e5f61d73c33d3c8f3bf07f5a9afd0db046a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Tue Jun 28 21:00:37 2016 -0700
+
+    [gobject] Fix a few warnings
+
+    Part of https://github.com/behdad/harfbuzz/issues/277
+
+ src/hb-buffer.cc         |  2 +-
+ src/hb-gobject-structs.h | 12 ++++++++++++
+ src/hb-shape.cc          |  2 --
+ src/hb-unicode.h         | 15 ---------------
+ 4 files changed, 13 insertions(+), 18 deletions(-)
+
+commit d8273aac19771033c5064a2f079c29d09a86e7c0
+Merge: abae93f ae9054c
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Tue Jun 28 21:15:28 2016 -0700
+
+    Merge pull request #280 from behdad/revert-271-patch-2
+
+    Revert "use utf32"
+
+commit ae9054c740631e36b7582b44c5afb42ff4509461
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Tue Jun 28 21:14:38 2016 -0700
+
+    Revert "use utf32"
+
+ src/sample.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+commit 7aa3631dd06af74a1fa9f0bfaa5f721876be817f
+Merge: f7da048 abae93f
+Author: Dominik Röttsches <d-r@roettsches.de>
+Date:   Tue Jun 28 09:52:18 2016 +0200
+
+    Merge branch 'master' into conflictingFontFix
+
+commit abae93faef32562f34a72981d252c848cc4f7565
+Merge: 07461d0 8179ff5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:   Mon Jun 27 14:33:27 2016 -0400
+
+    Merge pull request #273 from ebraminio/master
+
+       [dwrite] Use stream font loader instead GDI interop
+
+commit 8179ff5d7ba4a140cf6743729a22072800e98a79
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date:  Mon Jun 27 03:54:15 2016 +0430
+
+    [dwrite] Don't allocate more than needed
+
+    Addressing Nikolay Sivov reviews on harfbuzz mailing list
+
+ src/hb-directwrite.cc | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+commit 07b724f3419a28c479cd8a75ae0eecb841a6d2f3
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date:  Fri Jun 24 12:23:25 2016 +0430
+
+    [dwrite] Delete remained objects
+
+    No longer noticeable memory increase on create/destroy iterations,
+    highly better than current state of uniscribe backend
+
+ src/hb-directwrite.cc | 33 ++++++++++++++++++++++++---------
+ 1 file changed, 24 insertions(+), 9 deletions(-)
+
+commit be565d17141818e006aa1e4582f3ae14c726fa85
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date:  Fri Jun 24 11:42:01 2016 +0430
+
+    [dwrite] Release allocated blob on face destroy
+
+    This reduces memory consumption of my iterated font create/destroy
+    cycle test
+    significantly and makes it much better than uniscribe backend even
+
+ src/hb-directwrite.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit f3f0ea980a359343ac0e3d359a95855c2cf7be25
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date:  Thu Jun 23 16:41:37 2016 +0430
+
+    [dwrite] Remove ifdefs without breaking execution on old Windows
+    versions
+
+ src/hb-directwrite.cc | 205
+ +++++++++++++++++++++++++-------------------------
+ 1 file changed, 103 insertions(+), 102 deletions(-)
+
+commit 6b861dbd8b3662d0fa0e51fad1736d72192da868
+Author: Ebrahim Byagowi <ebrahim@gnu.org>
+Date:  Tue Jun 21 13:57:26 2016 +0430
+
+    [dwrite] Use stream font loader instead GDI interop
+
+    With help of
+    https://dxr.mozilla.org/mozilla-central/source/gfx/2d/NativeFontResourceDWrite.cpp
+
+ src/hb-directwrite.cc | 350
+ +++++++++++++++++++-------------------------------
+ src/hb-directwrite.h  |   2 +-
+ 2 files changed, 135 insertions(+), 217 deletions(-)
+
+commit f7da0486ed8884481d477ce08fcf928c4da9a0a3
+Merge: a022327 07461d0
+Author: Dominik Röttsches <d-r@roettsches.de>
+Date:  Mon Jun 20 10:25:43 2016 +0300
+
+    Merge branch 'master' into conflictingFontFix
+
+commit 07461d06d242cd5cfda7ccb891189f074a89b460
+Author: Kelvin <kelvinsthirteen@gmail.com>
+Date:  Sat Jun 18 22:46:38 2016 +0000
+
+    Use UTF-32 in Python sample
+
+ src/sample.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+commit fca0c61d67aa309fc824fb18f247493c2b7701ef
+Merge: 4b8de1e 9883505
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date:  Sun Jun 19 00:08:51 2016 +0300
+
+    Merge pull request #270 from khaledhosny/travis-failure
+
+    Fix make check on Travis
+
+commit 988350586f607c7a46bbb658a2abecfd004f41fb
+Author: Khaled Hosny <khaledhosny@eglug.org>
+Date:  Sat Jun 18 21:12:19 2016 +0200
+
+    [tests] Workaround Python 2 “narrow” builds
+
+    The so-called Python 2 “narrow” builds support UCS2 only, this
+    is a
+    workaround to allow unichr to work with any Unicode character in such
+    builds. This fixes Travis-CI failure as it has narrow Python 2 builds.
+
+    Copied from:
+    https://github.com/behdad/fonttools/blob/master/Lib/fontTools/misc/py23.py
+
+ test/shaping/hb_test_tools.py | 38 +++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 37 insertions(+), 1 deletion(-)
+
+commit a0223274b97e82fe02730fd45729172511fec459
+Author: Dominik Röttsches <drott@chromium.org>
+Date:  Thu Jun 16 14:19:39 2016 +0200
+
+    Discard reconfigured CTFont if URL changes
+
+    Fixes https://github.com/behdad/harfbuzz/issues/267
+
+ src/hb-coretext.cc | 24 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+commit 4b8de1ea804b225e8357422d0686aad76b05ccf3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Mon Jun 6 23:08:54 2016 -0700
+
+    Round, not truncate, when scaling values
+
+    Fixes https://github.com/behdad/harfbuzz/issues/255
+
+ src/hb-font-private.hh | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+commit a93078a0ece6dcdea8c5b46cabd30854dd7cf593
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Mon Jun 6 15:58:41 2016 -0700
+
+    Change bugreport URL to github
+
+    That's where everything is happening these days.
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit bed201d2b839c1b1e727e17efc2e0c8f705b86c5
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Mon Jun 6 14:14:24 2016 -0700
+
+    Update for latest Unicode 9 data files
+
+ src/hb-ot-shape-complex-indic-table.cc | 10 +++++-----
+ src/hb-ot-shape-complex-indic.cc      |  5 -----
+ src/hb-ot-shape-complex-use-table.cc  |  4 ++--
+ 3 files changed, 7 insertions(+), 12 deletions(-)
+
+commit aba4b0ca52f490adfc2f3c6ec0accddd6596fdf6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Wed Jun 1 16:57:29 2016 -0700
+
+    Add TODO
+
+ src/hb-font.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+commit a2b03de5b30b7e83f7fbf3457e9ba9c00eb88d00
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 17:56:07 2016 +0100
+
+    [myanmar] Handle U+AA74..U+AA76
+
+    Fixes https://github.com/behdad/harfbuzz/issues/218
+
+ src/hb-ot-shape-complex-myanmar.cc | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit 6c0aa9e92bbd22011c85d98c6db021012f7b4101
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 17:50:06 2016 +0100
+
+    Fix build on droid.io
+
+ test/shaping/tests/use.tests | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 9b6312f9451db790db00dc2c2e27a5a1db852e72
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 17:41:49 2016 +0100
+
+    [use] Update to draft spec from Andrew Glass from August 2015
+
+ src/gen-use-table.py                              |  29 +++--
+ src/hb-ot-shape-complex-use-machine.rl                    |  15 +--
+ src/hb-ot-shape-complex-use-private.hh                    |   1 -
+ src/hb-ot-shape-complex-use-table.cc              | 142
+ ++++++++++-----------
+ src/hb-ot-shape-complex-use.cc                            |  11 +-
+ .../6ff0fbead4462d9f229167b4e6839eceb8465058.ttf   | Bin 0 -> 1148 bytes
+ test/shaping/tests/use.tests                      |   1 +
+ 7 files changed, 93 insertions(+), 106 deletions(-)
+
+commit 3e4e7616a8ca80a50a438601b84428b4ba4c8694
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 17:28:25 2016 +0100
+
+    [use] Add a catch-all clause to the machine
+
+ src/hb-ot-shape-complex-use-machine.rl | 2 ++
+ src/hb-ot-shape-complex-use.cc                | 2 ++
+ 2 files changed, 4 insertions(+)
+
+commit d04e461fe3310ccaf8633efcb79b8eb6ca2201c3
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 17:17:00 2016 +0100
+
+    [use] Fix 'Number-joiner terminated cluster' to use HN instead of H
+
+    From draft update to USE.
+
+ src/hb-ot-shape-complex-use-machine.rl | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 359dead960c825edeb4587915a511d323f1c1f2a
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 16:19:19 2016 +0100
+
+    Allow MultipleSubst to delete glyph
+
+    Fixes https://github.com/behdad/harfbuzz/issues/253
+
+    Hopefully we got the logic right.
+
+ src/hb-ot-layout-gsub-table.hh       | 17 +++++++----------
+ src/hb-ot-layout-gsubgpos-private.hh | 11 +++++++----
+ 2 files changed, 14 insertions(+), 14 deletions(-)
+
+commit 3c1666cfb589275de96d54eecb95a13a98e3819e
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 16:05:07 2016 +0100
+
+    [indic] Remove more unused logic after Javanese is gone
+
+ src/hb-ot-shape-complex-indic.cc | 50
+ +++++++++++++++-------------------------
+ 1 file changed, 18 insertions(+), 32 deletions(-)
+
+commit 8b5d6e755b271d0d22b31a7726d5bfbf2aae8b2f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 15:59:27 2016 +0100
+
+    [indic] Remove unused Javanese bits
+
+ src/hb-ot-shape-complex-indic-machine.rl | 3 +--
+ src/hb-ot-shape-complex-indic-private.hh | 5 ++---
+ src/hb-ot-shape-complex-indic.cc        | 4 ----
+ 3 files changed, 3 insertions(+), 9 deletions(-)
+
+commit 30e6e29f0f0f77eb65bfd1c4576b38c2da555017
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 15:52:27 2016 +0100
+
+    [indic/use] Move Javanese from Indic shaper to USE
+
+    Fixes https://github.com/behdad/harfbuzz/issues/243
+
+    With javatext.ttf, the reodering medial Ra gets its advance width
+    zero'ed in Uniscribe implementation, and the font adds the advance
+    back.  Our Indic shaper does not do that, but USE does.  So, route
+    Javanese through USE.  That's what Microsoft does anyway.  Test:
+
+      U+A9A5,U+A9BA
+
+    This also seems to fix the following sequence, and variations thereof:
+
+      U+A99F,U+A9C0,U+A9A2,U+A9BF
+
+ src/gen-indic-table.py                                    |  1 -
+ src/hb-ot-shape-complex-indic-table.cc                    | 23
+ ++++------------------
+ src/hb-ot-shape-complex-private.hh                |  5 +----
+ .../south-east-asian/script-javanese/misc.txt     |  1 +
+ 4 files changed, 6 insertions(+), 24 deletions(-)
+
+commit c6ee5f5f06a27a6f147f63aaf51186622821f20b
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 15:39:02 2016 +0100
+
+    Add Javanese sample text
+
+ .../south-east-asian/script-javanese/misc.txt     | 53
+ ++++++++++++++++++++++
+ 1 file changed, 53 insertions(+)
+
+commit e21921a68a959b7e929f71a4260a6cbe055ab4e6
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 15:24:39 2016 +0100
+
+    Minor
+
+ BUILD.md | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+commit 01a30a6aa9a5827c93245961e3392a1f361745fe
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 11:50:02 2016 +0100
+
+    [indic] Remove data for scripts that don't go thorough this shaper
+
+ src/gen-indic-table.py                        |  29 +-
+ src/hb-ot-shape-complex-indic-table.cc | 604
+ +--------------------------------
+ 2 files changed, 43 insertions(+), 590 deletions(-)
+
+commit 7cd9269f4eba7b85cd72301a3fc39fab42a4e439
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 11:34:46 2016 +0100
+
+    Update tables to Unicode 9.0.0 beta
+
+    Fixes https://github.com/behdad/harfbuzz/issues/251
+
+ src/hb-ot-shape-complex-arabic-table.hh |  56 ++++++++-----
+ src/hb-ot-shape-complex-indic-table.cc  | 137
+ +++++++++++++++++++++++---------
+ src/hb-ot-shape-complex-use-table.cc   |  86 ++++++++++++++------
+ 3 files changed, 196 insertions(+), 83 deletions(-)
+
+commit f718fe370ea89e8aeb407addaa6cc926d52a4cdb
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 11:21:12 2016 +0100
+
+    Minor
+
+ src/gen-indic-table.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+commit 691086f131cb6c9d97e98730c27673484bf93f87
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 12:08:18 2016 +0100
+
+    Add Unicode 9 beta scripts
+
+    These are frozen, so good time to add.
+
+ src/hb-common.cc                  | 3 +++
+ src/hb-common.h                   | 9 +++++++++
+ src/hb-ot-shape-complex-private.hh | 9 +++++++++
+ src/hb-ot-shape-complex-use.cc     | 3 +++
+ 4 files changed, 24 insertions(+)
+
+commit bc5198fe1277d662926a4f616913c085cd4fc8ee
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Fri May 6 11:59:05 2016 +0100
+
+    Whitespace
+
+ src/hb-common.h | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+commit a5b7b0dd4508d8a1e7573b75c4cb8832c9e34e3f
+Author: Behdad Esfahbod <behdad@behdad.org>
+Date:  Mon May 2 10:44:13 2016 +0200
+
+    1.2.7
+
+ NEWS        | 12 ++++++++++++
+ configure.ac |  2 +-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
 commit 9879fc1db3cad684f412c2f3d6b49e0435697d0e
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Mon May 2 10:29:12 2016 +0200
+Date:  Mon May 2 10:29:12 2016 +0200
 
     [ot-font] Remove unused 'post' table include for now
 
@@ -11,11 +584,11 @@ Date:   Mon May 2 10:29:12 2016 +0200
 
 commit f8061ae7972462ad800c23be7cd7b3d7ab94b93b
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Mon May 2 10:28:24 2016 +0200
+Date:  Mon May 2 10:28:24 2016 +0200
 
     [tests] Fix test
 
- test/shaping/Makefile.am                                                |
+ test/shaping/Makefile.am                                               |
  2 +-
  .../tests/{fallback-positioning.test => fallback-positioning.tests}
  | 0
@@ -23,7 +596,7 @@ Date:   Mon May 2 10:28:24 2016 +0200
 
 commit f00ab2a33ab34ba64f38cbbe65830c770a3e071e
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Mon May 2 10:24:00 2016 +0200
+Date:  Mon May 2 10:24:00 2016 +0200
 
     [hb-ot-font] Make 'glyf' table loading lazy
 
@@ -33,22 +606,22 @@ Date:   Mon May 2 10:24:00 2016 +0200
     positioning
     happens.
 
- src/hb-ot-font.cc                                  |  45
+ src/hb-ot-font.cc                                 |  45
  ++++++++++++++++++++-
- test/shaping/Makefile.am                           |   1 +
+ test/shaping/Makefile.am                          |   1 +
  .../7ef276fc886ea502a03b9b0e5c8b547d5dc2b61c.ttf   | Bin 0 -> 784 bytes
- test/shaping/tests/fallback-positioning.test       |   2 +
+ test/shaping/tests/fallback-positioning.test      |   2 +
  4 files changed, 46 insertions(+), 2 deletions(-)
 
 commit 587d46227a56940a7f5bb053cbeda6144394acf7
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Sat Apr 30 19:20:56 2016 +0200
+Date:  Sat Apr 30 19:20:56 2016 +0200
 
     [ot-font] Start implementing 'post' table, for accessing glyph names
 
- src/Makefile.sources        |   1 +
- src/hb-open-type-private.hh |  12 ++++-
- src/hb-ot-font.cc           |   1 +
+ src/Makefile.sources       |   1 +
+ src/hb-open-type-private.hh | 12 ++++-
+ src/hb-ot-font.cc          |   1 +
  src/hb-ot-post-table.hh     | 119
  ++++++++++++++++++++++++++++++++++++++++++++
  4 files changed, 132 insertions(+), 1 deletion(-)
@@ -56,13 +629,13 @@ Date:   Sat Apr 30 19:20:56 2016 +0200
 commit 9abaaac409b8e3a0a9182b67dc384133013f7878
 Merge: 2f560ee 264b7a7
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Wed Apr 27 03:38:24 2016 -0700
+Date:  Wed Apr 27 03:38:24 2016 -0700
 
     Merge commit '264b7a728a41becfbf23ce258fc2a3af19d0cbbe' into HEAD
 
 commit 2f560ee44b7b08683e8e6955fe3b95187e8bda32
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Wed Apr 27 03:11:41 2016 -0700
+Date:  Wed Apr 27 03:11:41 2016 -0700
 
     [tibetan] Reorder marks to better match Uniscribe
 
@@ -77,20 +650,20 @@ Date:   Wed Apr 27 03:11:41 2016 -0700
 
 commit f68390f196216718c22c434e1d8921118e646824
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Wed Apr 27 02:44:35 2016 -0700
+Date:  Wed Apr 27 02:44:35 2016 -0700
 
     [test] Add text for Tibetan shorthand contractions
 
     From http://www.babelstone.co.uk/Tibetan/Contractions.html
 
- .../script-tibetan/misc/contractions.txt           | 612
+ .../script-tibetan/misc/contractions.txt          | 612
  +++++++++++++++++++++
  1 file changed, 612 insertions(+)
 
 commit 264b7a728a41becfbf23ce258fc2a3af19d0cbbe
 Merge: 7e2da03 adafdcd
 Author: Khaled Hosny <khaledhosny@eglug.org>
-Date:   Wed Apr 27 03:48:23 2016 +0300
+Date:  Wed Apr 27 03:48:23 2016 +0300
 
     Merge pull request #247 from khaledhosny/update-opentype-language-tags
 
@@ -98,7 +671,7 @@ Date:   Wed Apr 27 03:48:23 2016 +0300
 
 commit adafdcddced076da4bfa3114a00e15a387aaf1f7
 Author: Arthur Reutenauer <arthur.reutenauer@normalesup.org>
-Date:   Sat Nov 7 23:37:21 2015 +0000
+Date:  Sat Nov 7 23:37:21 2015 +0000
 
     Mass-added “difficult” tags – to be curated.
 
@@ -108,7 +681,7 @@ Date:   Sat Nov 7 23:37:21 2015 +0000
 
 commit 3d6a2c0d7d9f6c5b3097f78c1123f9e59dcc76e2
 Author: Arthur Reutenauer <arthur.reutenauer@normalesup.org>
-Date:   Sat Nov 7 22:59:13 2015 +0000
+Date:  Sat Nov 7 22:59:13 2015 +0000
 
     Initial import of missing OpenType 1.7 language tags.
 
@@ -118,7 +691,7 @@ Date:   Sat Nov 7 22:59:13 2015 +0000
 
 commit 7e2da035f68e46ce8f4759b67b4ed3a1b211d793
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Tue Apr 26 16:42:25 2016 -0700
+Date:  Tue Apr 26 16:42:25 2016 -0700
 
     Undo accidental change
 
@@ -127,23 +700,23 @@ Date:   Tue Apr 26 16:42:25 2016 -0700
 
 commit b20305022a8235b19e6b640bc62651854e1336f1
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Tue Apr 26 16:41:17 2016 -0700
+Date:  Tue Apr 26 16:41:17 2016 -0700
 
     Do NOT ignore Mongolian Free Variation Selectors during matching
 
     Fixes https://github.com/behdad/harfbuzz/issues/234
 
- src/hb-ot-layout-gsubgpos-private.hh               |   2 +-
- src/hb-ot-layout-private.hh                        |  23
+ src/hb-ot-layout-gsubgpos-private.hh              |   2 +-
+ src/hb-ot-layout-private.hh                       |  23
  +++++++++++++++++++--
- src/hb-ot-shape-complex-arabic.cc                  |   2 +-
+ src/hb-ot-shape-complex-arabic.cc                 |   2 +-
  .../a34a7b00f22ffb5fd7eef6933b81c7e71bc2cdfb.ttf   | Bin 0 -> 3700 bytes
- .../tests/mongolian-variation-selector.tests       |   1 +
+ .../tests/mongolian-variation-selector.tests      |   1 +
  5 files changed, 24 insertions(+), 4 deletions(-)
 
 commit 21ab5501f5f5267d20cf23256866dd9d82a667ef
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Tue Apr 26 16:02:04 2016 -0700
+Date:  Tue Apr 26 16:02:04 2016 -0700
 
     Move ZWJ/ZWNJ bits to top byte of unicode_props()
 
@@ -155,7 +728,7 @@ Date:   Tue Apr 26 16:02:04 2016 -0700
 
 commit de508516cb06ddb064d75bd7be8e843a5ebcf70d
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Tue Apr 26 11:28:37 2016 -0700
+Date:  Tue Apr 26 11:28:37 2016 -0700
 
     [util] Print out --debug buffer to stderr
 
@@ -164,7 +737,7 @@ Date:   Tue Apr 26 11:28:37 2016 -0700
 
 commit 29393884b9f045460fb65d6ad10a94461ba93430
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Tue Apr 26 10:35:23 2016 -0700
+Date:  Tue Apr 26 10:35:23 2016 -0700
 
     Annotate blacklisted fonts with their sha1sum
 
@@ -174,7 +747,7 @@ Date:   Tue Apr 26 10:35:23 2016 -0700
 commit 14bb4a56971fd45063cd6c1288d911627088abb2
 Merge: 1c625df 5069062
 Author: Sascha Brawer <sascha@brawer.ch>
-Date:   Tue Apr 26 11:38:16 2016 +0200
+Date:  Tue Apr 26 11:38:16 2016 +0200
 
     Merge pull request #245 from KonstantinRitt/fixes/ce
 
@@ -182,7 +755,7 @@ Date:   Tue Apr 26 11:38:16 2016 +0200
 
 commit 5069062d0a9342bb716eebf3ddc1efad91924caa
 Author: Konstantin Ritt <ritt.ks@gmail.com>
-Date:   Tue Apr 26 12:02:26 2016 +0400
+Date:  Tue Apr 26 12:02:26 2016 +0400
 
     Unbreak build on Windows CE
 
@@ -194,7 +767,7 @@ Date:   Tue Apr 26 12:02:26 2016 +0400
 
 commit 1c625dff2269c54ff429ca45be88893ff1fa6c34
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Sat Apr 9 12:53:23 2016 -0700
+Date:  Sat Apr 9 12:53:23 2016 -0700
 
     Minor
 
@@ -203,7 +776,7 @@ Date:   Sat Apr 9 12:53:23 2016 -0700
 
 commit 851b0db36d1b724fc1e0db506445119c78186285
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Fri Apr 8 23:46:55 2016 -0700
+Date:  Fri Apr 8 23:46:55 2016 -0700
 
     Minor.  We should never get to this branch, but fix it anyway.
 
@@ -212,17 +785,17 @@ Date:   Fri Apr 8 23:46:55 2016 -0700
 
 commit 00ea66f35754a1e6e4d3b7b139d611a9a623a9d1
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Fri Apr 8 13:51:01 2016 -0700
+Date:  Fri Apr 8 13:51:01 2016 -0700
 
     1.2.6
 
- NEWS         | 10 ++++++++++
+ NEWS        | 10 ++++++++++
  configure.ac |  2 +-
  2 files changed, 11 insertions(+), 1 deletion(-)
 
 commit 4f3d59a1877dcb94d09da48e9694a6c1b05a86fe
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Fri Apr 8 13:41:20 2016 -0700
+Date:  Fri Apr 8 13:41:20 2016 -0700
 
     Blacklist another set of timesi.ttf and timesbi.ttf
 
@@ -232,7 +805,7 @@ Date:   Fri Apr 8 13:41:20 2016 -0700
 commit ef476be80d773332e0c768a3465d99381d76edd9
 Merge: a0331b5 d3134a6
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Fri Apr 8 13:16:33 2016 -0700
+Date:  Fri Apr 8 13:16:33 2016 -0700
 
     Merge pull request #239 from ebraminio/dwfix
 
@@ -240,7 +813,7 @@ Date:   Fri Apr 8 13:16:33 2016 -0700
 
 commit d3134a66ad551ded726db9528d3c25459088f105
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Tue Apr 5 21:01:05 2016 +0000
+Date:  Tue Apr 5 21:01:05 2016 +0000
 
     Fix when no feature is given
 
@@ -249,29 +822,29 @@ Date:   Tue Apr 5 21:01:05 2016 +0000
 
 commit a0331b55f7b45437980e1fc323251f4091bf2c4e
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Mon Apr 4 16:25:32 2016 -0700
+Date:  Mon Apr 4 16:25:32 2016 -0700
 
     1.2.5
 
- NEWS         | 7 +++++++
+ NEWS        | 7 +++++++
  configure.ac | 2 +-
  2 files changed, 8 insertions(+), 1 deletion(-)
 
 commit 6e55199b5f097ac93bad38f32e9813e2da14c5a7
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Mon Apr 4 16:24:27 2016 -0700
+Date:  Mon Apr 4 16:24:27 2016 -0700
 
     Add test for 6dd80faf0dcb3e8a8915c3a25da44e2a67cb0cd8
 
- test/shaping/Makefile.am                                |   1 +
- .../f22416c692720a7d46fadf4af99f4c9e094f00b9.ttf        | Bin 0 ->
+ test/shaping/Makefile.am                               |   1 +
+ .../f22416c692720a7d46fadf4af99f4c9e094f00b9.ttf       | Bin 0 ->
  16736 bytes
- test/shaping/tests/mark-filtering-sets.tests            |   5 +++++
+ test/shaping/tests/mark-filtering-sets.tests           |   5 +++++
  3 files changed, 6 insertions(+)
 
 commit 59089622dbb8dda783b1639c932123f125c3592d
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Mon Apr 4 14:54:32 2016 -0700
+Date:  Mon Apr 4 14:54:32 2016 -0700
 
     [coretext] Clarify comment
 
@@ -280,7 +853,7 @@ Date:   Mon Apr 4 14:54:32 2016 -0700
 
 commit 6dd80faf0dcb3e8a8915c3a25da44e2a67cb0cd8
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Mon Apr 4 14:34:25 2016 -0700
+Date:  Mon Apr 4 14:34:25 2016 -0700
 
     Fix FixedVersion::to_int()
 
@@ -294,7 +867,7 @@ Date:   Mon Apr 4 14:34:25 2016 -0700
 
 commit 4a104021697439fd21390a1f4cdc9310348882fa
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Sat Apr 2 13:47:59 2016 +0000
+Date:  Sat Apr 2 13:47:59 2016 +0000
 
     Hide justification behind HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
 
@@ -303,7 +876,7 @@ Date:   Sat Apr 2 13:47:59 2016 +0000
 
 commit 63ee9ca5d81b53eb035972754ed95572821c393c
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Fri Apr 1 15:47:07 2016 +0000
+Date:  Fri Apr 1 15:47:07 2016 +0000
 
     Use standard types instead Windows favourites ones
 
@@ -313,7 +886,7 @@ Date:   Fri Apr 1 15:47:07 2016 +0000
 
 commit adf20ba0d18d1506e633dcd9b4827a6c93abcadd
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Fri Apr 1 15:36:40 2016 +0000
+Date:  Fri Apr 1 15:36:40 2016 +0000
 
     Limit GetJustifiedGlyphs only to scripts with custom justification
     character
@@ -324,7 +897,7 @@ Date:   Fri Apr 1 15:36:40 2016 +0000
 
 commit 32ae9d1b3ffbe7e26e654437a56a26a95fe9f5a6
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Fri Apr 1 06:39:57 2016 +0000
+Date:  Fri Apr 1 06:39:57 2016 +0000
 
     Add justification support
 
@@ -334,7 +907,7 @@ Date:   Fri Apr 1 06:39:57 2016 +0000
 
 commit 10c3d9e41520595c88dd2a8321590e03ce8fcf47
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Thu Mar 31 18:19:44 2016 +0000
+Date:  Thu Mar 31 18:19:44 2016 +0000
 
     Basic opentype features support
 
@@ -344,7 +917,7 @@ Date:   Thu Mar 31 18:19:44 2016 +0000
 
 commit d129897120d3ad414220d603557c15a60aa69fa6
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Thu Mar 31 13:45:37 2016 +0000
+Date:  Thu Mar 31 13:45:37 2016 +0000
 
     Refactor and remove dupe getglyphs call
 
@@ -354,7 +927,7 @@ Date:   Thu Mar 31 13:45:37 2016 +0000
 
 commit 5f1a8961008b93f72acc47336109af3a64e248d0
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Thu Mar 31 12:26:16 2016 +0000
+Date:  Thu Mar 31 12:26:16 2016 +0000
 
     Better glyph offset support
 
@@ -363,7 +936,7 @@ Date:   Thu Mar 31 12:26:16 2016 +0000
 
 commit d691ba3f405738c6857450752b8cc0911dfcdb01
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Wed Mar 30 20:21:40 2016 +0000
+Date:  Wed Mar 30 20:21:40 2016 +0000
 
     Don't fail when language is not set
 
@@ -372,7 +945,7 @@ Date:   Wed Mar 30 20:21:40 2016 +0000
 
 commit 1c00a46c7a608ebc0b03c5abfcfe7f2b9881d0df
 Author: Ebrahim Byagowi <ebrahim@gnu.org>
-Date:   Wed Mar 30 20:15:09 2016 +0000
+Date:  Wed Mar 30 20:15:09 2016 +0000
 
     Make DirectWrite backend to work with different font sizes
 
@@ -383,17 +956,17 @@ Date:   Wed Mar 30 20:15:09 2016 +0000
 
 commit 0251b0cc5c39272d2299d4b2ab802faaafe96837
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Thu Mar 17 14:37:11 2016 -0700
+Date:  Thu Mar 17 14:37:11 2016 -0700
 
     1.2.4
 
- NEWS         | 15 +++++++++++++++
+ NEWS        | 15 +++++++++++++++
  configure.ac |  2 +-
  2 files changed, 16 insertions(+), 1 deletion(-)
 
 commit 69f9fbc4200442a35484d3c790ae8f4979be5d60
 Author: Behdad Esfahbod <behdad@behdad.org>
-Date:   Thu Mar 17 11:59:43 2016 -0700
+Date:  Thu Mar 17 11:59:43 2016 -0700
 
     Synthesize GDEF glyph class for any glyph that does not have one
     in GDEF
diff --git a/NEWS b/NEWS
index e62b198..6f46119 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,18 @@
+Overview of changes leading to 1.3.0
+Thursday, July 21, 2016
+====================================
+
+- Update to Unicode 9.0.0
+- Move Javanese from Indic shaper to Universal Shaping Engine.
+- Allow MultipleSubst to delete a glyph (matching Windows engine).
+- Update Universal Shaping Engine to latest draft from Microsoft.
+- DirectWrite backend improvements.  Note: this backend is for testing ONLY.
+- CoreText backend improvements with unreachable fonts.
+- Implement symbol fonts (cmap 3.0.0) in hb-ft and hb-ot-font.
+- Blacklist bad GDEF of more fonts (Tahoma & others).
+- Misc fixes.
+
+
 Overview of changes leading to 1.2.7
 Monday, May 2, 2016
 ====================================
index 1b45257..04b284b 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for HarfBuzz 1.2.7.
+# Generated by GNU Autoconf 2.69 for HarfBuzz 1.3.0.
 #
-# Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz>.
+# Report bugs to <https://github.com/behdad/harfbuzz/issues/new>.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -275,11 +275,10 @@ fi
     $as_echo "$0: be upgraded to zsh 4.3.4 or later."
   else
     $as_echo "$0: Please tell bug-autoconf@gnu.org and
-$0: http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz
-$0: about your system, including any error possibly output
-$0: before this message. Then install a modern shell, or
-$0: manually run the script under such a shell if you do
-$0: have one."
+$0: https://github.com/behdad/harfbuzz/issues/new about
+$0: your system, including any error possibly output before
+$0: this message. Then install a modern shell, or manually
+$0: run the script under such a shell if you do have one."
   fi
   exit 1
 fi
@@ -591,9 +590,9 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='HarfBuzz'
 PACKAGE_TARNAME='harfbuzz'
-PACKAGE_VERSION='1.2.7'
-PACKAGE_STRING='HarfBuzz 1.2.7'
-PACKAGE_BUGREPORT='http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz'
+PACKAGE_VERSION='1.3.0'
+PACKAGE_STRING='HarfBuzz 1.3.0'
+PACKAGE_BUGREPORT='https://github.com/behdad/harfbuzz/issues/new'
 PACKAGE_URL='http://harfbuzz.org/'
 
 ac_unique_file="src/harfbuzz.pc.in"
@@ -1462,7 +1461,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures HarfBuzz 1.2.7 to adapt to many kinds of systems.
+\`configure' configures HarfBuzz 1.3.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1532,7 +1531,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of HarfBuzz 1.2.7:";;
+     short | recursive ) echo "Configuration of HarfBuzz 1.3.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1636,7 +1635,7 @@ Some influential environment variables:
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
-Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz>.
+Report bugs to <https://github.com/behdad/harfbuzz/issues/new>.
 HarfBuzz home page: <http://harfbuzz.org/>.
 _ACEOF
 ac_status=$?
@@ -1700,7 +1699,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-HarfBuzz configure 1.2.7
+HarfBuzz configure 1.3.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2166,9 +2165,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
 $as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ------------------------------------------------------------------------- ##
-## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz ##
-## ------------------------------------------------------------------------- ##"
+( $as_echo "## ------------------------------------------------------------ ##
+## Report this to https://github.com/behdad/harfbuzz/issues/new ##
+## ------------------------------------------------------------ ##"
      ) | sed "s/^/$as_me: WARNING:     /" >&2
     ;;
 esac
@@ -2440,9 +2439,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
 $as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( $as_echo "## ------------------------------------------------------------------------- ##
-## Report this to http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz ##
-## ------------------------------------------------------------------------- ##"
+( $as_echo "## ------------------------------------------------------------ ##
+## Report this to https://github.com/behdad/harfbuzz/issues/new ##
+## ------------------------------------------------------------ ##"
      ) | sed "s/^/$as_me: WARNING:     /" >&2
     ;;
 esac
@@ -2518,7 +2517,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by HarfBuzz $as_me 1.2.7, which was
+It was created by HarfBuzz $as_me 1.3.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3387,7 +3386,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='harfbuzz'
- VERSION='1.2.7'
+ VERSION='1.3.0'
 
 
 # Some tools Automake needs.
@@ -16885,9 +16884,9 @@ GIT=${GIT-"${am_missing_run}git"}
 
 
 HB_VERSION_MAJOR=1
-HB_VERSION_MINOR=2
-HB_VERSION_MICRO=7
-HB_VERSION=1.2.7
+HB_VERSION_MINOR=3
+HB_VERSION_MICRO=0
+HB_VERSION=1.3.0
 
 
 
@@ -16898,7 +16897,7 @@ HB_VERSION=1.2.7
 
 
 
-HB_LIBTOOL_VERSION_INFO=10200:7:10200
+HB_LIBTOOL_VERSION_INFO=10300:0:10300
 
 
 # Documentation
@@ -19869,7 +19868,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by HarfBuzz $as_me 1.2.7, which was
+This file was extended by HarfBuzz $as_me 1.3.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19929,14 +19928,14 @@ $config_headers
 Configuration commands:
 $config_commands
 
-Report bugs to <http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz>.
+Report bugs to <https://github.com/behdad/harfbuzz/issues/new>.
 HarfBuzz home page: <http://harfbuzz.org/>."
 
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-HarfBuzz config.status 1.2.7
+HarfBuzz config.status 1.3.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
index 5ffd494..e1a28f2 100644 (file)
@@ -1,7 +1,7 @@
 AC_PREREQ([2.64])
 AC_INIT([HarfBuzz],
-        [1.2.7],
-        [http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz],
+        [1.3.0],
+        [https://github.com/behdad/harfbuzz/issues/new],
         [harfbuzz],
         [http://harfbuzz.org/])
 
index ccf96bc..f80a8eb 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Adding text to the buffer: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Adding text to the buffer</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
 <link rel="prev" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
 <link rel="next" href="setting-buffer-properties.html" title="Setting buffer properties">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="buffers-language-script-and-direction.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -30,6 +30,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ccbbafe..1fd30e4 100644 (file)
@@ -2,16 +2,16 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Annotation Glossary: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Annotation Glossary</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_glossary"><a class="shortcut" href="#glsA">A</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#glsC">C</a>
@@ -22,8 +22,6 @@
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#glsI">I</a>
                      <span class="dim">|</span> 
-                  <a class="shortcut" href="#glsN">N</a>
-                     <span class="dim">|</span> 
                   <a class="shortcut" href="#glsO">O</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#glsS">S</a>
@@ -39,7 +37,7 @@
 <a name="annotation-glossary"></a>Annotation Glossary</h2></div></div></div>
 <a name="glsA"></a><h3 class="title">A</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
-<dd class="glossdef"><p>NULL is OK, both for passing and for returning.</p></dd>
+<dd class="glossdef"><p>NULL is ok, both for passing and for returning.</p></dd>
 <dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
 <dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
 <a name="glsC"></a><h3 class="title">C</h3>
 <a name="glsI"></a><h3 class="title">I</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-inout"></a>inout</span></dt>
 <dd class="glossdef"><p>Parameter for input and for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
-<a name="glsN"></a><h3 class="title">N</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-nullable"></a>nullable</span></dt>
-<dd class="glossdef"><p>NULL may be passed as the value in, out, in-out; or as a return value.</p></dd>
 <a name="glsO"></a><h3 class="title">O</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
 <dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
+<dt><span class="glossterm"><a name="annotation-glossterm-out%20caller-allocates"></a>out caller-allocates</span></dt>
+<dd class="glossdef"><p>Out parameter, where caller must allocate storage.</p></dd>
 <a name="glsS"></a><h3 class="title">S</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-scope%20notified"></a>scope notified</span></dt>
 <dd class="glossdef"><p>The callback is valid until the GDestroyNotify argument is called.</p></dd>
-<dt><span class="glossterm"><a name="annotation-glossterm-skip"></a>skip</span></dt>
-<dd class="glossdef"><p>Exposed in C code, not necessarily available in other languages.</p></dd>
 <a name="glsT"></a><h3 class="title">T</h3>
 <dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
 <dd class="glossdef"><p>Free data after the code is done.</p></dd>
@@ -72,6 +67,7 @@
 <dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 76ac9c6..df7e1c1 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.10: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.10</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-8.html" title="Index of new symbols in 0.9.8">
 <link rel="next" href="api-index-0-9-11.html" title="Index of new symbols in 0.9.11">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxS">S</a></span></td>
@@ -36,6 +36,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 83271c7..7f967f5 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.11: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.11</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-10.html" title="Index of new symbols in 0.9.10">
 <link rel="next" href="api-index-0-9-20.html" title="Index of new symbols in 0.9.20">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -29,6 +29,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 75ae862..0893c2e 100644 (file)
@@ -2,23 +2,25 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.2: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.2</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-full.html" title="API Index">
 <link rel="next" href="api-index-0-9-5.html" title="Index of new symbols in 0.9.5">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxD">D</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxF">F</a>
                      <span class="dim">|</span> 
+                  <a class="shortcut" href="#idxG">G</a>
+                     <span class="dim">|</span> 
                   <a class="shortcut" href="#idxL">L</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxO">O</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="harfbuzz-Buffers.html#hb-buffer-create" title="hb_buffer_create ()">hb_buffer_create</a>, function in <a class="link" href="harfbuzz-Buffers.html" title="Buffers">Buffers</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-destroy" title="hb_buffer_destroy ()">hb_buffer_destroy</a>, function in <a class="link" href="harfbuzz-Buffers.html" title="Buffers">Buffers</a>
 </dt>
 <dd></dd>
 <dd></dd>
 <a name="idxF"></a><h3 class="title">F</h3>
 <dt>
-<a class="link" href="harfbuzz-hb-face.html#hb-face-create" title="hb_face_create ()">hb_face_create</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="harfbuzz-hb-face.html#hb-face-create-for-tables" title="hb_face_create_for_tables ()">hb_face_create_for_tables</a>, function in <a class="link" href="harfbuzz-hb-face.html" title="hb-face">hb-face</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-create" title="hb_font_create ()">hb_font_create</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="harfbuzz-hb-font.html#hb-font-create-sub-font" title="hb_font_create_sub_font ()">hb_font_create_sub_font</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-create" title="hb_font_funcs_create ()">hb_font_funcs_create</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-destroy" title="hb_font_funcs_destroy ()">hb_font_funcs_destroy</a>, function in <a class="link" href="harfbuzz-hb-font.html" title="hb-font">hb-font</a>
 </dt>
 <dd></dd>
 <a class="link" href="harfbuzz-hb-ft.html#hb-ft-font-create" title="hb_ft_font_create ()">hb_ft_font_create</a>, function in <a class="link" href="harfbuzz-hb-ft.html" title="hb-ft">hb-ft</a>
 </dt>
 <dd></dd>
+<a name="idxG"></a><h3 class="title">G</h3>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" title="hb_gobject_blob_get_type ()">hb_gobject_blob_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" title="hb_gobject_buffer_get_type ()">hb_gobject_buffer_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" title="hb_gobject_face_get_type ()">hb_gobject_face_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" title="hb_gobject_font_funcs_get_type ()">hb_gobject_font_funcs_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" title="hb_gobject_font_get_type ()">hb_gobject_font_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" title="hb_gobject_unicode_funcs_get_type ()">hb_gobject_unicode_funcs_get_type</a>, function in <a class="link" href="harfbuzz-hb-gobject.html" title="hb-gobject">hb-gobject</a>
+</dt>
+<dd></dd>
 <a name="idxL"></a><h3 class="title">L</h3>
 <dt>
 <a class="link" href="harfbuzz-hb-common.html#hb-language-from-string" title="hb_language_from_string ()">hb_language_from_string</a>, function in <a class="link" href="harfbuzz-hb-common.html" title="hb-common">hb-common</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="harfbuzz-hb-set.html#hb-set-create" title="hb_set_create ()">hb_set_create</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="harfbuzz-hb-set.html#hb-set-del" title="hb_set_del ()">hb_set_del</a>, function in <a class="link" href="harfbuzz-hb-set.html" title="hb-set">hb-set</a>
 </dt>
 <dd></dd>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-create" title="hb_unicode_funcs_create ()">hb_unicode_funcs_create</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-destroy" title="hb_unicode_funcs_destroy ()">hb_unicode_funcs_destroy</a>, function in <a class="link" href="harfbuzz-hb-unicode.html" title="hb-unicode">hb-unicode</a>
 </dt>
 <dd></dd>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index cb1b1f6..4fbfdb1 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.20: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.20</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-11.html" title="Index of new symbols in 0.9.11">
 <link rel="next" href="api-index-0-9-22.html" title="Index of new symbols in 0.9.22">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -33,6 +33,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 29003d2..f53c7a4 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.22: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.22</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-20.html" title="Index of new symbols in 0.9.20">
 <link rel="next" href="api-index-0-9-28.html" title="Index of new symbols in 0.9.28">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -29,6 +29,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index db1a51b..c7418ef 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.28: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.28</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-22.html" title="Index of new symbols in 0.9.22">
 <link rel="next" href="api-index-0-9-30.html" title="Index of new symbols in 0.9.30">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -29,6 +29,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index e28f4db..899d1f7 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.30: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.30</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-28.html" title="Index of new symbols in 0.9.28">
 <link rel="next" href="api-index-0-9-31.html" title="Index of new symbols in 0.9.31">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxV">V</a></span></td>
@@ -36,6 +36,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index b011157..6fafb27 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.31: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.31</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-30.html" title="Index of new symbols in 0.9.30">
 <link rel="next" href="api-index-0-9-38.html" title="Index of new symbols in 0.9.38">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -41,6 +41,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 263adb8..fa58e6b 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.38: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.38</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-31.html" title="Index of new symbols in 0.9.31">
 <link rel="next" href="api-index-0-9-39.html" title="Index of new symbols in 0.9.39">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxG">G</a></span></td>
@@ -40,6 +40,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index dc36815..9df1ff9 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.39: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.39</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-38.html" title="Index of new symbols in 0.9.38">
 <link rel="next" href="api-index-0-9-41.html" title="Index of new symbols in 0.9.41">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -29,6 +29,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index b4b2466..386088b 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.41: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.41</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-39.html" title="Index of new symbols in 0.9.39">
 <link rel="next" href="api-index-0-9-42.html" title="Index of new symbols in 0.9.42">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -29,6 +29,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 4fdb417..cd6d0a3 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.42: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.42</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-41.html" title="Index of new symbols in 0.9.41">
 <link rel="next" href="api-index-1-0-5.html" title="Index of new symbols in 1.0.5">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -33,6 +33,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 5f03c6d..0ad2ed1 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.5: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.5</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-2.html" title="Index of new symbols in 0.9.2">
 <link rel="next" href="api-index-0-9-7.html" title="Index of new symbols in 0.9.7">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxF">F</a>
@@ -51,6 +51,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index d948391..0062924 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.7: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.7</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-5.html" title="Index of new symbols in 0.9.5">
 <link rel="next" href="api-index-0-9-8.html" title="Index of new symbols in 0.9.8">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxF">F</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create" title="hb_shape_plan_create ()">hb_shape_plan_create</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
-</dt>
-<dd></dd>
-<dt>
 <a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-create-cached" title="hb_shape_plan_create_cached ()">hb_shape_plan_create_cached</a>, function in <a class="link" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">hb-shape-plan</a>
 </dt>
 <dd></dd>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 13ef9b1..4ce9c35 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 0.9.8: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 0.9.8</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-7.html" title="Index of new symbols in 0.9.7">
 <link rel="next" href="api-index-0-9-10.html" title="Index of new symbols in 0.9.10">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxO">O</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -29,6 +29,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 243d7b8..2985894 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.0.5: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 1.0.5</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-0-9-42.html" title="Index of new symbols in 0.9.42">
 <link rel="next" href="api-index-1-1-2.html" title="Index of new symbols in 1.1.2">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -37,6 +37,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 2d8ba8a..7315a55 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.1.2: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 1.1.2</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-1-0-5.html" title="Index of new symbols in 1.0.5">
 <link rel="next" href="api-index-1-1-3.html" title="Index of new symbols in 1.1.3">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxF">F</a></span></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -33,6 +33,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 545ed99..53b87a1 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of new symbols in 1.1.3: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of new symbols in 1.1.3</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-1-1-2.html" title="Index of new symbols in 1.1.2">
 <link rel="next" href="deprecated-api-index.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxF">F</a></span></td>
@@ -44,6 +44,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index b82641b..1289a75 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>API Index: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: API Index</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="object-tree.html" title="Object Hierarchy">
 <link rel="next" href="api-index-0-9-2.html" title="Index of new symbols in 0.9.2">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxC">C</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="harfbuzz-hb-version.html#HB-VERSION-STRING:CAPS" title="HB_VERSION_STRING">HB_VERSION_STRING</a>, macro in <a class="link" href="harfbuzz-hb-version.html" title="hb-version">hb-version</a>
+<a class="link" href="harfbuzz-hb-version.html#hb-version-string" title="hb_version_string ()">hb_version_string</a>, function in <a class="link" href="harfbuzz-hb-version.html" title="hb-version">hb-version</a>
 </dt>
 <dd></dd>
 <dt>
-<a class="link" href="harfbuzz-hb-version.html#hb-version-string" title="hb_version_string ()">hb_version_string</a>, function in <a class="link" href="harfbuzz-hb-version.html" title="hb-version">hb-version</a>
+<a class="link" href="harfbuzz-hb-version.html#HB-VERSION-STRING:CAPS" title="HB_VERSION_STRING">HB_VERSION_STRING</a>, macro in <a class="link" href="harfbuzz-hb-version.html" title="hb-version">hb-version</a>
 </dt>
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 5447496..77ed5f3 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Buffers, language, script and direction: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Buffers, language, script and direction</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt01.html" title="Part I. User's manual">
 <link rel="prev" href="hello-harfbuzz.html" title="Hello, Harfbuzz">
 <link rel="next" href="adding-text-to-the-buffer.html" title="Adding text to the buffer">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -82,6 +82,7 @@ void somefunc(hb_buffer_t *buffer) {
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 0351b6c..5a9ce2c 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Building: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Building</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="install-harfbuzz.html" title="Install Harfbuzz">
 <link rel="prev" href="install-harfbuzz.html" title="Install Harfbuzz">
 <link rel="next" href="hello-harfbuzz.html" title="Hello, Harfbuzz">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="install-harfbuzz.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -75,6 +75,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 69fe962..244ccf2 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Harfbuzz API: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Harfbuzz API</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="pt02.html" title="Part II. Reference manual">
 <link rel="next" href="harfbuzz-hb.html" title="hb">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -98,6 +98,7 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index f496df4..b1bd51a 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Customizing Unicode functions: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Customizing Unicode functions</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
 <link rel="prev" href="what-about-the-other-scripts.html" title="What about the other scripts?">
 <link rel="next" href="fonts-and-faces.html" title="Fonts and faces">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="buffers-language-script-and-direction.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -26,6 +26,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 5b5bfbc..ffb7835 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Index of deprecated API: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Index of deprecated API</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="api-index-1-1-3.html" title="Index of new symbols in 1.1.3">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxB">B</a>
                      <span class="dim">|</span> 
                   <a class="shortcut" href="#idxF">F</a>
@@ -51,6 +51,7 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 0700a1c..799d8a7 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Fonts and faces: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Fonts and faces</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt01.html" title="Part I. User's manual">
 <link rel="prev" href="customizing-unicode-functions.html" title="Customizing Unicode functions">
 <link rel="next" href="using-harfbuzzs-native-opentype-implementation.html" title="Using Harfbuzz's native OpenType implementation">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -35,6 +35,7 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 6c7d0e9..f5d7e49 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Buffers: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Buffers</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-unicode.html" title="hb-unicode">
 <link rel="next" href="harfbuzz-hb-blob.html" title="hb-blob">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-Buffers.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-Buffers.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-Buffers.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-Buffers.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">├──</span> hb_buffer_t
     <span class="lineart">├──</span> hb_glyph_info_t
     <span class="lineart">├──</span> hb_glyph_position_t
     <span class="lineart">╰──</span> hb_segment_properties_t
-    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+    GEnum
     <span class="lineart">├──</span> hb_buffer_cluster_level_t
     <span class="lineart">├──</span> hb_buffer_content_type_t
     <span class="lineart">╰──</span> hb_buffer_serialize_format_t
-    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
+    GFlags
     <span class="lineart">├──</span> hb_buffer_flags_t
     <span class="lineart">╰──</span> hb_buffer_serialize_flags_t
 </pre>
@@ -541,18 +541,6 @@ passed <a class="link" href="harfbuzz-Shaping.html#hb-shape" title="hb_shape ()
 <a name="hb-buffer-create"></a><h3>hb_buffer_create ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
 hb_buffer_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Creates a new <a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> with all properties to defaults.</p>
-<p><span class="annotation">[Xconstructor]</span></p>
-<div class="refsect3">
-<a name="hb-buffer-create.returns"></a><h4>Returns</h4>
-<p>A newly allocated <a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> with a reference count of 1. The initial
-reference count should be released with <a class="link" href="harfbuzz-Buffers.html#hb-buffer-destroy" title="hb_buffer_destroy ()"><code class="function">hb_buffer_destroy()</code></a> when you are done
-using the <a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>. This function never returns <code class="literal">NULL</code>. If memory cannot
-be allocated, a special <a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> object will be returned on which
-<a class="link" href="harfbuzz-Buffers.html#hb-buffer-allocation-successful" title="hb_buffer_allocation_successful ()"><code class="function">hb_buffer_allocation_successful()</code></a> returns <code class="literal">false</code>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -563,9 +551,8 @@ hb_buffer_reference (<em class="parameter"><code><a class="link" href="harfbuzz-
  by one. This prevents <em class="parameter"><code>buffer</code></em>
  from
 being destroyed until a matching call to <a class="link" href="harfbuzz-Buffers.html#hb-buffer-destroy" title="hb_buffer_destroy ()"><code class="function">hb_buffer_destroy()</code></a> is made.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-buffer-reference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -580,11 +567,11 @@ being destroyed until a matching call to <a class="link" href="harfbuzz-Buffers.
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-reference.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.3.6"></a><h4>Returns</h4>
 <p>The referenced <a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -592,11 +579,11 @@ being destroyed until a matching call to <a class="link" href="harfbuzz-Buffers.
 <pre class="programlisting"><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="returnvalue">hb_buffer_t</span></a> *
 hb_buffer_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <div class="refsect3">
-<a name="hb-buffer-get-empty.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.4.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -609,9 +596,8 @@ Decreases the reference count on <em class="parameter"><code>buffer</code></em>
  by one. If the result is zero, then
 <em class="parameter"><code>buffer</code></em>
  and all associated resources are freed. See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-reference" title="hb_buffer_reference ()"><code class="function">hb_buffer_reference()</code></a>.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-buffer-destroy.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -625,7 +611,7 @@ Decreases the reference count on <em class="parameter"><code>buffer</code></em>
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -635,7 +621,7 @@ hb_buffer_reset (<em class="parameter"><code><a class="link" href="harfbuzz-Buff
 <p>Resets the buffer to its initial status, as if it was just newly created
 with <a class="link" href="harfbuzz-Buffers.html#hb-buffer-create" title="hb_buffer_create ()"><code class="function">hb_buffer_create()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-reset.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -649,7 +635,7 @@ with <a class="link" href="harfbuzz-Buffers.html#hb-buffer-create" title="hb_buf
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -659,7 +645,7 @@ hb_buffer_clear_contents (<em class="parameter"><code><a class="link" href="harf
 <p>Similar to <a class="link" href="harfbuzz-Buffers.html#hb-buffer-reset" title="hb_buffer_reset ()"><code class="function">hb_buffer_reset()</code></a>, but does not clear the Unicode functions and
 the replacement code point.</p>
 <div class="refsect3">
-<a name="hb-buffer-clear-contents.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -673,7 +659,7 @@ the replacement code point.</p>
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-11.html#api-index-0.9.11">0.9.11</a></p>
+<p class="since">Since 0.9.11</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -685,7 +671,7 @@ hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbu
  to fit at least <em class="parameter"><code>size</code></em>
  number of items.</p>
 <div class="refsect3">
-<a name="hb-buffer-pre-allocate.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -707,11 +693,12 @@ hb_buffer_pre_allocate (<em class="parameter"><code><a class="link" href="harfbu
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-pre-allocate.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.8.6"></a><h4>Returns</h4>
 <p><code class="literal">true</code> if <em class="parameter"><code>buffer</code></em>
 memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -720,7 +707,7 @@ memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
 hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>Check if allocating memory for the buffer succeeded.</p>
 <div class="refsect3">
-<a name="hb-buffer-allocation-successful.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -735,11 +722,12 @@ hb_buffer_allocation_successful (<em class="parameter"><code><a class="link" hre
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-allocation-successful.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.9.6"></a><h4>Returns</h4>
 <p><code class="literal">true</code> if <em class="parameter"><code>buffer</code></em>
 memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -760,7 +748,7 @@ character in the input text stream and are output in
 , it is up to the
 caller to ensure it is a valid Unicode code point.</p>
 <div class="refsect3">
-<a name="hb-buffer-add.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.10.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -787,7 +775,7 @@ caller to ensure it is a valid Unicode code point.</p>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -818,7 +806,7 @@ marks at stat of run.</p>
 , it is up to the caller
 to ensure it contains a valid Unicode code points.</p>
 <div class="refsect3">
-<a name="hb-buffer-add-codepoints.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.11.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -839,7 +827,7 @@ to ensure it contains a valid Unicode code points.</p>
 <tr>
 <td class="parameter_name"><p>text_length</p></td>
 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -853,13 +841,13 @@ to ensure it contains a valid Unicode code points.</p>
 <td class="parameter_description"><p>the number of code points to add to the <em class="parameter"><code>buffer</code></em>
 , or -1 for the
 end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-31.html#api-index-0.9.31">0.9.31</a></p>
+<p class="since">Since 0.9.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -875,7 +863,7 @@ hb_buffer_add_utf32 (<em class="parameter"><code><a class="link" href="harfbuzz-
  replacement code point,
 see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-add-utf32.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -896,7 +884,7 @@ see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepo
 <tr>
 <td class="parameter_name"><p>text_length</p></td>
 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -910,13 +898,13 @@ see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepo
 <td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
 , or -1 for the
 end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -932,7 +920,7 @@ hb_buffer_add_utf16 (<em class="parameter"><code><a class="link" href="harfbuzz-
  replacement code point,
 see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-add-utf16.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.13.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -953,7 +941,7 @@ see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepo
 <tr>
 <td class="parameter_name"><p>text_length</p></td>
 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -967,13 +955,13 @@ see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepo
 <td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
 , or -1 for the
 end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -989,7 +977,7 @@ hb_buffer_add_utf8 (<em class="parameter"><code><a class="link" href="harfbuzz-B
  replacement code point,
 see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-add-utf8.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.14.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1011,7 +999,7 @@ characters to append. </p></td>
 <tr>
 <td class="parameter_name"><p>text_length</p></td>
 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1025,13 +1013,13 @@ characters to append. </p></td>
 <td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
 , or -1 for the
 end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1046,7 +1034,7 @@ hb_buffer_add_latin1 (<em class="parameter"><code><a class="link" href="harfbuzz
 Unicode code points that can fit in 8-bit strings.</p>
 <div class="note">Has nothing to do with non-Unicode Latin-1 encoding.</div>
 <div class="refsect3">
-<a name="hb-buffer-add-latin1.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.15.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1068,7 +1056,7 @@ characters to append. </p></td>
 <tr>
 <td class="parameter_name"><p>text_length</p></td>
 <td class="parameter_description"><p>the length of the <em class="parameter"><code>text</code></em>
-, or -1 if it is <code class="literal">NULL</code> terminated.</p></td>
+, or -1 if it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -1082,13 +1070,13 @@ characters to append. </p></td>
 <td class="parameter_description"><p>the number of characters to add to the <em class="parameter"><code>buffer</code></em>
 , or -1 for the
 end of <em class="parameter"><code>text</code></em>
-(assuming it is <code class="literal">NULL</code> terminated).</p></td>
+(assuming it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated).</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-39.html#api-index-0.9.39">0.9.39</a></p>
+<p class="since">Since 0.9.39</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1100,7 +1088,7 @@ hb_buffer_set_content_type (<em class="parameter"><code><a class="link" href="ha
  contents, buffers are either empty, contain
 characters (before shaping) or glyphs (the result of shaping).</p>
 <div class="refsect3">
-<a name="hb-buffer-set-content-type.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1121,7 +1109,7 @@ characters (before shaping) or glyphs (the result of shaping).</p>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
+<p class="since">Since 0.9.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1130,7 +1118,7 @@ characters (before shaping) or glyphs (the result of shaping).</p>
 hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>see <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-content-type" title="hb_buffer_set_content_type ()"><code class="function">hb_buffer_set_content_type()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-get-content-type.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1145,11 +1133,12 @@ hb_buffer_get_content_type (<em class="parameter"><code><a class="link" href="ha
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-content-type.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.17.6"></a><h4>Returns</h4>
 <p>The type of <em class="parameter"><code>buffer</code></em>
 contents.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
+<p class="since">Since 0.9.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1166,7 +1155,7 @@ reversing RTL text before shaping, then shaping with LTR direction is not
 the same as keeping the text in logical order and shaping with RTL
 direction.</p>
 <div class="refsect3">
-<a name="hb-buffer-set-direction.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.18.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1188,7 +1177,7 @@ direction.</p>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1197,7 +1186,7 @@ direction.</p>
 hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a></p>
 <div class="refsect3">
-<a name="hb-buffer-get-direction.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.19.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1212,11 +1201,12 @@ hb_buffer_get_direction (<em class="parameter"><code><a class="link" href="harfb
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-direction.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.19.6"></a><h4>Returns</h4>
 <p>The direction of the <em class="parameter"><code>buffer</code></em>
 .</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1234,7 +1224,7 @@ to be applied.</p>
 <a class="link" href="harfbuzz-hb-common.html#hb-script-from-string" title="hb_script_from_string ()"><code class="function">hb_script_from_string()</code></a> or <a class="link" href="harfbuzz-hb-common.html#hb-script-from-iso15924-tag" title="hb_script_from_iso15924_tag ()"><code class="function">hb_script_from_iso15924_tag()</code></a> to get the
 corresponding script from an ISO 15924 script tag.</p>
 <div class="refsect3">
-<a name="hb-buffer-set-script.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.20.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1255,7 +1245,7 @@ corresponding script from an ISO 15924 script tag.</p>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1264,7 +1254,7 @@ corresponding script from an ISO 15924 script tag.</p>
 hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-get-script.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.21.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1279,11 +1269,12 @@ hb_buffer_get_script (<em class="parameter"><code><a class="link" href="harfbuzz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-script.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.21.6"></a><h4>Returns</h4>
 <p>The <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> of the <em class="parameter"><code>buffer</code></em>
 .</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1301,7 +1292,7 @@ different concepts and should not be confused with each other.</p>
 <p>Use <a class="link" href="harfbuzz-hb-common.html#hb-language-from-string" title="hb_language_from_string ()"><code class="function">hb_language_from_string()</code></a> to convert from ISO 639 language codes to
 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-set-language.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.22.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1322,7 +1313,7 @@ different concepts and should not be confused with each other.</p>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1331,7 +1322,7 @@ different concepts and should not be confused with each other.</p>
 hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-get-language.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.23.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1346,11 +1337,11 @@ hb_buffer_get_language (<em class="parameter"><code><a class="link" href="harfbu
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-language.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.23.6"></a><h4>Returns</h4>
 <p>The <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> of the buffer. Must not be freed by the caller. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1362,7 +1353,7 @@ hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
  flags to <em class="parameter"><code>flags</code></em>
 . See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t"><span class="type">hb_buffer_flags_t</span></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-set-flags.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.24.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1383,7 +1374,7 @@ hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1392,7 +1383,7 @@ hb_buffer_set_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
 hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-flags" title="hb_buffer_set_flags ()"><code class="function">hb_buffer_set_flags()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-get-flags.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.25.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1407,11 +1398,12 @@ hb_buffer_get_flags (<em class="parameter"><code><a class="link" href="harfbuzz-
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-flags.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.25.6"></a><h4>Returns</h4>
 <p>The <em class="parameter"><code>buffer</code></em>
 flags.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1420,7 +1412,7 @@ flags.</p>
 hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="type">hb_buffer_cluster_level_t</span></a> cluster_level</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-buffer-set-cluster-level.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.26.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1434,7 +1426,7 @@ hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-42.html#api-index-0.9.42">0.9.42</a></p>
+<p class="since">Since 0.9.42</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1442,7 +1434,7 @@ hb_buffer_set_cluster_level (<em class="parameter"><code><a class="link" href="h
 <pre class="programlisting"><a class="link" href="harfbuzz-Buffers.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t"><span class="returnvalue">hb_buffer_cluster_level_t</span></a>
 hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-buffer-get-cluster-level.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.27.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1456,7 +1448,11 @@ hb_buffer_get_cluster_level (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-42.html#api-index-0.9.42">0.9.42</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.5.12.27.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.42</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1467,7 +1463,7 @@ hb_buffer_set_length (<em class="parameter"><code><a class="link" href="harfbuzz
 <p>Similar to <a class="link" href="harfbuzz-Buffers.html#hb-buffer-pre-allocate" title="hb_buffer_pre_allocate ()"><code class="function">hb_buffer_pre_allocate()</code></a>, but clears any new items added at the
 end.</p>
 <div class="refsect3">
-<a name="hb-buffer-set-length.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.28.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1490,11 +1486,12 @@ end.</p>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-set-length.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.28.6"></a><h4>Returns</h4>
 <p><code class="literal">true</code> if <em class="parameter"><code>buffer</code></em>
 memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1503,7 +1500,7 @@ memory allocation succeeded, <code class="literal">false</code> otherwise.</p>
 hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>Returns the number of items in the buffer.</p>
 <div class="refsect3">
-<a name="hb-buffer-get-length.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.29.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1518,12 +1515,13 @@ hb_buffer_get_length (<em class="parameter"><code><a class="link" href="harfbuzz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-length.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.29.6"></a><h4>Returns</h4>
 <p>The <em class="parameter"><code>buffer</code></em>
 length.
 The value valid as long as buffer has not been modified.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1535,7 +1533,7 @@ hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" hr
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-direction" title="hb_buffer_set_direction ()"><code class="function">hb_buffer_set_direction()</code></a>, <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-script" title="hb_buffer_set_script ()"><code class="function">hb_buffer_set_script()</code></a> and
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-language" title="hb_buffer_set_language ()"><code class="function">hb_buffer_set_language()</code></a> individually.</p>
 <div class="refsect3">
-<a name="hb-buffer-set-segment-properties.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.30.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1556,7 +1554,7 @@ hb_buffer_set_segment_properties (<em class="parameter"><code><a class="link" hr
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1568,7 +1566,7 @@ hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" hr
  to the <a class="link" href="harfbuzz-Buffers.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> of <em class="parameter"><code>buffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="hb-buffer-get-segment-properties.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.31.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1589,7 +1587,7 @@ hb_buffer_get_segment_properties (<em class="parameter"><code><a class="link" hr
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1611,7 +1609,7 @@ it will be set to the process's default language as returned by
 <a class="link" href="harfbuzz-hb-common.html#hb-language-get-default" title="hb_language_get_default ()"><code class="function">hb_language_get_default()</code></a>.  This may change in the future by
 taking buffer script into consideration when choosing a language.</p>
 <div class="refsect3">
-<a name="hb-buffer-guess-segment-properties.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.32.8"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1625,7 +1623,7 @@ taking buffer script into consideration when choosing a language.</p>
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1634,7 +1632,7 @@ taking buffer script into consideration when choosing a language.</p>
 hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *unicode_funcs</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-buffer-set-unicode-funcs.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.33.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1648,7 +1646,7 @@ hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1656,7 +1654,7 @@ hb_buffer_set_unicode_funcs (<em class="parameter"><code><a class="link" href="h
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
 hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-buffer-get-unicode-funcs.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.34.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1670,7 +1668,11 @@ hb_buffer_get_unicode_funcs (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.5.12.34.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1681,9 +1683,8 @@ hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfb
                          <em class="parameter"><code><span class="type">void</span> *data</code></em>,
                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-buffer-set-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.35.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1697,7 +1698,11 @@ hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.5.12.35.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1705,9 +1710,8 @@ hb_buffer_set_user_data (<em class="parameter"><code><a class="link" href="harfb
 <pre class="programlisting"><span class="returnvalue">void</span> *
 hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>,
                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-buffer-get-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.36.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1721,7 +1725,11 @@ hb_buffer_get_user_data (<em class="parameter"><code><a class="link" href="harfb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.5.12.36.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1734,7 +1742,7 @@ hb_buffer_get_glyph_infos (<em class="parameter"><code><a class="link" href="har
 is valid as long as <em class="parameter"><code>buffer</code></em>
  contents are not modified.</p>
 <div class="refsect3">
-<a name="hb-buffer-get-glyph-infos.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.37.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1756,13 +1764,13 @@ is valid as long as <em class="parameter"><code>buffer</code></em>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-glyph-infos.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.37.6"></a><h4>Returns</h4>
 <p>The <em class="parameter"><code>buffer</code></em>
 glyph information array.
 The value valid as long as buffer has not been modified. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1775,7 +1783,7 @@ hb_buffer_get_glyph_positions (<em class="parameter"><code><a class="link" href=
 is valid as long as <em class="parameter"><code>buffer</code></em>
  contents are not modified.</p>
 <div class="refsect3">
-<a name="hb-buffer-get-glyph-positions.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.38.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1797,13 +1805,13 @@ is valid as long as <em class="parameter"><code>buffer</code></em>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-glyph-positions.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.38.6"></a><h4>Returns</h4>
 <p>The <em class="parameter"><code>buffer</code></em>
 glyph position array.
 The value valid as long as buffer has not been modified. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1816,7 +1824,7 @@ when adding text to <em class="parameter"><code>buffer</code></em>
 .</p>
 <p>Default is <a class="link" href="harfbuzz-Buffers.html#HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS" title="HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT"><code class="literal">HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-set-replacement-codepoint.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.39.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1837,7 +1845,7 @@ when adding text to <em class="parameter"><code>buffer</code></em>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-31.html#api-index-0.9.31">0.9.31</a></p>
+<p class="since">Since 0.9.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1846,7 +1854,7 @@ when adding text to <em class="parameter"><code>buffer</code></em>
 hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>See <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint" title="hb_buffer_set_replacement_codepoint ()"><code class="function">hb_buffer_set_replacement_codepoint()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-get-replacement-codepoint.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.40.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1861,11 +1869,12 @@ hb_buffer_get_replacement_codepoint (<em class="parameter"><code><a class="link"
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-get-replacement-codepoint.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.40.6"></a><h4>Returns</h4>
 <p>The <em class="parameter"><code>buffer</code></em>
 replacement <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a>.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-31.html#api-index-0.9.31">0.9.31</a></p>
+<p class="since">Since 0.9.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1876,7 +1885,7 @@ hb_buffer_normalize_glyphs (<em class="parameter"><code><a class="link" href="ha
 The resulting clusters should behave identical to pre-reordering clusters.</p>
 <div class="note">This has nothing to do with Unicode normalization.</div>
 <div class="refsect3">
-<a name="hb-buffer-normalize-glyphs.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.41.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1890,7 +1899,7 @@ The resulting clusters should behave identical to pre-reordering clusters.</p>
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1899,7 +1908,7 @@ The resulting clusters should behave identical to pre-reordering clusters.</p>
 hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-t"><span class="type">hb_buffer_t</span></a> *buffer</code></em>);</pre>
 <p>Reverses buffer contents.</p>
 <div class="refsect3">
-<a name="hb-buffer-reverse.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.42.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1913,7 +1922,7 @@ hb_buffer_reverse (<em class="parameter"><code><a class="link" href="harfbuzz-Bu
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1924,7 +1933,7 @@ hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfb
                          <em class="parameter"><code>unsigned <span class="type">int</span> end</code></em>);</pre>
 <p>Reverses buffer contents between start to end.</p>
 <div class="refsect3">
-<a name="hb-buffer-reverse-range.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.43.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1950,7 +1959,7 @@ hb_buffer_reverse_range (<em class="parameter"><code><a class="link" href="harfb
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-41.html#api-index-0.9.41">0.9.41</a></p>
+<p class="since">Since 0.9.41</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1961,7 +1970,7 @@ hb_buffer_reverse_clusters (<em class="parameter"><code><a class="link" href="ha
 reversed, then each cluster (consecutive items having the
 same cluster number) are reversed again.</p>
 <div class="refsect3">
-<a name="hb-buffer-reverse-clusters.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.44.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1975,7 +1984,7 @@ same cluster number) are reversed again.</p>
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2028,7 +2037,7 @@ The serialized glyphs will look something like:</p>
 <p>TODO.</p>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-serialize-glyphs.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.45.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2067,15 +2076,15 @@ write serialized buffer into. </p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>buf_consumed</p></td>
-<td class="parameter_description"><p> if not <code class="literal">NULL</code>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
+<td class="parameter_description"><p> if not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, will be set to the number of byes written into <em class="parameter"><code>buf</code></em>
 . </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>font</p></td>
 <td class="parameter_description"><p> the <a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> used to shape this buffer, needed to
-read glyph names and extents. If <code class="literal">NULL</code>, and empty font will be used. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+read glyph names and extents. If <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, and empty font will be used. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>format</p></td>
@@ -2092,10 +2101,11 @@ to serialize.</p></td>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-serialize-glyphs.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.45.8"></a><h4>Returns</h4>
 <p>The number of serialized items.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2108,7 +2118,7 @@ hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="
                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
                               <em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-buffer-deserialize-glyphs.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.46.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2134,7 +2144,11 @@ hb_buffer_deserialize_glyphs (<em class="parameter"><code><a class="link" href="
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.5.12.46.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2148,7 +2162,7 @@ hb_buffer_serialize_format_from_string
  is a valid buffer serialization format, use
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-list-formats" title="hb_buffer_serialize_list_formats ()"><code class="function">hb_buffer_serialize_list_formats()</code></a> to get the list of supported formats.</p>
 <div class="refsect3">
-<a name="hb-buffer-serialize-format-from-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.47.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2164,17 +2178,18 @@ hb_buffer_serialize_format_from_string
 <tr>
 <td class="parameter_name"><p>len</p></td>
 <td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
-, or -1 if string is <code class="literal">NULL</code> terminated</p></td>
+, or -1 if string is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-serialize-format-from-string.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.47.6"></a><h4>Returns</h4>
 <p>The parsed <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a>.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2182,10 +2197,10 @@ hb_buffer_serialize_format_from_string
 <pre class="programlisting">const <span class="returnvalue">char</span> *
 hb_buffer_serialize_format_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a> format</code></em>);</pre>
 <p>Converts <em class="parameter"><code>format</code></em>
- to the string corresponding it, or <code class="literal">NULL</code> if it is not a valid
+ to the string corresponding it, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if it is not a valid
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t"><span class="type">hb_buffer_serialize_format_t</span></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-serialize-format-to-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.48.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2200,12 +2215,12 @@ hb_buffer_serialize_format_to_string (<em class="parameter"><code><a class="link
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-buffer-serialize-format-to-string.returns"></a><h4>Returns</h4>
-<p>A <code class="literal">NULL</code> terminated string corresponding to <em class="parameter"><code>format</code></em>
+<a name="id-1.3.3.5.12.48.6"></a><h4>Returns</h4>
+<p>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated string corresponding to <em class="parameter"><code>format</code></em>
 . Should not be freed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2214,11 +2229,11 @@ hb_buffer_serialize_format_to_string (<em class="parameter"><code><a class="link
 hb_buffer_serialize_list_formats (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Returns a list of supported buffer serialization formats.</p>
 <div class="refsect3">
-<a name="hb-buffer-serialize-list-formats.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.49.5"></a><h4>Returns</h4>
 <p>A string array of buffer serialization formats. Should not be freed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2228,7 +2243,7 @@ hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" h
                              <em class="parameter"><code>const <a class="link" href="harfbuzz-Buffers.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a> *b</code></em>);</pre>
 <p>Checks the equality of two <a class="link" href="harfbuzz-Buffers.html#hb-segment-properties-t"><span class="type">hb_segment_properties_t</span></a>'s.</p>
 <div class="refsect3">
-<a name="hb-segment-properties-equal.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.50.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2250,13 +2265,13 @@ hb_segment_properties_equal (<em class="parameter"><code>const <a class="link" h
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-segment-properties-equal.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.50.6"></a><h4>Returns</h4>
 <p><code class="literal">true</code> if all properties of <em class="parameter"><code>a</code></em>
 equal those of <em class="parameter"><code>b</code></em>
-, false otherwise. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
+, false otherwise.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2266,7 +2281,7 @@ hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" hr
 <p>Creates a hash representing <em class="parameter"><code>p</code></em>
 .</p>
 <div class="refsect3">
-<a name="hb-segment-properties-hash.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.51.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2281,11 +2296,12 @@ hb_segment_properties_hash (<em class="parameter"><code>const <a class="link" hr
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-segment-properties-hash.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.5.12.51.6"></a><h4>Returns</h4>
 <p>A hash of <em class="parameter"><code>p</code></em>
 .</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2296,7 +2312,7 @@ hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="ha
                             <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-buffer-set-message-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.5.12.52.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2317,7 +2333,7 @@ hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="ha
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-1-3.html#api-index-1.1.3">1.1.3</a></p>
+<p class="since">Since 1.1.3</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2342,7 +2358,7 @@ hb_buffer_set_message_func (<em class="parameter"><code><a class="link" href="ha
 </pre>
 <p>The default code point for replacing invalid characters in a given encoding.
 Set to U+FFFD REPLACEMENT CHARACTER.</p>
-<p class="since">Since: <a class="link" href="api-index-0-9-31.html#api-index-0.9.31">0.9.31</a></p>
+<p class="since">Since 0.9.31</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2364,7 +2380,7 @@ and output glyphs and their information after shaping.</p>
 <p>The <a class="link" href="harfbuzz-Buffers.html#hb-glyph-info-t"><span class="type">hb_glyph_info_t</span></a> is the structure that holds information about the
 glyphs and their relation to input text.</p>
 <div class="refsect3">
-<a name="hb-glyph-info-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.5.13.5.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2417,7 +2433,7 @@ allow selecting more fine-grained cluster handling.</p></td>
 glyph in both horizontal and vertical directions. All positions in
 <a class="link" href="harfbuzz-Buffers.html#hb-glyph-position-t"><span class="type">hb_glyph_position_t</span></a> are relative to the current point.</p>
 <div class="refsect3">
-<a name="hb-glyph-position-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.5.13.6.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2457,7 +2473,7 @@ should not affect how much the line advances.</p></td>
 <div class="refsect2">
 <a name="hb-buffer-content-type-t"></a><h3>enum hb_buffer_content_type_t</h3>
 <div class="refsect3">
-<a name="hb-buffer-content-type-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.5.13.7.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2494,7 +2510,7 @@ should not affect how much the line advances.</p></td>
 <div class="refsect2">
 <a name="hb-buffer-flags-t"></a><h3>enum hb_buffer_flags_t</h3>
 <div class="refsect3">
-<a name="hb-buffer-flags-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.5.13.8.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2543,13 +2559,13 @@ should not affect how much the line advances.</p></td>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-20.html#api-index-0.9.20">0.9.20</a></p>
+<p class="since">Since 0.9.20</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-buffer-cluster-level-t"></a><h3>enum hb_buffer_cluster_level_t</h3>
 <div class="refsect3">
-<a name="hb-buffer-cluster-level-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.5.13.9.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2594,7 +2610,7 @@ should not affect how much the line advances.</p></td>
 set and retrieved using <a class="link" href="harfbuzz-Buffers.html#hb-buffer-set-segment-properties" title="hb_buffer_set_segment_properties ()"><code class="function">hb_buffer_set_segment_properties()</code></a> and
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-get-segment-properties" title="hb_buffer_get_segment_properties ()"><code class="function">hb_buffer_get_segment_properties()</code></a>, respectively.</p>
 <div class="refsect3">
-<a name="hb-segment-properties-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.5.13.10.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
@@ -2627,7 +2643,7 @@ set and retrieved using <a class="link" href="harfbuzz-Buffers.html#hb-buffer-se
 <p>The buffer serialization and de-serialization format used in
 <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-glyphs" title="hb_buffer_serialize_glyphs ()"><code class="function">hb_buffer_serialize_glyphs()</code></a> and <a class="link" href="harfbuzz-Buffers.html#hb-buffer-deserialize-glyphs" title="hb_buffer_deserialize_glyphs ()"><code class="function">hb_buffer_deserialize_glyphs()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-serialize-format-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.5.13.11.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2659,14 +2675,14 @@ set and retrieved using <a class="link" href="harfbuzz-Buffers.html#hb-buffer-se
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-buffer-serialize-flags-t"></a><h3>enum hb_buffer_serialize_flags_t</h3>
 <p>Flags that control what glyph information are serialized in <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-glyphs" title="hb_buffer_serialize_glyphs ()"><code class="function">hb_buffer_serialize_glyphs()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-buffer-serialize-flags-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.5.13.12.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -2712,11 +2728,12 @@ set and retrieved using <a class="link" href="harfbuzz-Buffers.html#hb-buffer-se
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-20.html#api-index-0.9.20">0.9.20</a></p>
+<p class="since">Since 0.9.20</p>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 3e35150..de1a90e 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Shaping: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Shaping</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-font.html" title="hb-font">
 <link rel="next" href="harfbuzz-hb-version.html" title="hb-version">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-Shaping.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-Shaping.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-Shaping.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
@@ -97,7 +97,7 @@
 </div>
 <div class="refsect1">
 <a name="harfbuzz-Shaping.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">╰──</span> hb_feature_t
 </pre>
 </div>
@@ -124,7 +124,7 @@ hb_feature_from_string (<em class="parameter"><code>const <span class="type">cha
 <p>Parses a string into a <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a>.</p>
 <p>TODO: document the syntax here.</p>
 <div class="refsect3">
-<a name="hb-feature-from-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.9.9.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -140,7 +140,7 @@ hb_feature_from_string (<em class="parameter"><code>const <span class="type">cha
 <tr>
 <td class="parameter_name"><p>len</p></td>
 <td class="parameter_description"><p>length of <em class="parameter"><code>str</code></em>
-, or -1 if string is <code class="literal">NULL</code> terminated</p></td>
+, or -1 if string is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -152,11 +152,12 @@ hb_feature_from_string (<em class="parameter"><code>const <span class="type">cha
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-feature-from-string.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.9.9.2.7"></a><h4>Returns</h4>
 <p><code class="literal">true</code> if <em class="parameter"><code>str</code></em>
 is successfully parsed, <code class="literal">false</code> otherwise.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
+<p class="since">Since 0.9.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -165,12 +166,12 @@ is successfully parsed, <code class="literal">false</code> otherwise.</p>
 hb_feature_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *feature</code></em>,
                       <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
                       <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
-<p>Converts a <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> into a <code class="literal">NULL</code>-terminated string in the format
+<p>Converts a <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> into a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated string in the format
 understood by <a class="link" href="harfbuzz-Shaping.html#hb-feature-from-string" title="hb_feature_from_string ()"><code class="function">hb_feature_from_string()</code></a>. The client in responsible for
 allocating big enough size for <em class="parameter"><code>buf</code></em>
 , 128 bytes is more than enough.</p>
 <div class="refsect3">
-<a name="hb-feature-to-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.9.9.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -197,7 +198,7 @@ allocating big enough size for <em class="parameter"><code>buf</code></em>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
+<p class="since">Since 0.9.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -211,10 +212,10 @@ hb_shape (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.htm
  using <em class="parameter"><code>font</code></em>
  turning its Unicode characters content to
 positioned glyphs. If <em class="parameter"><code>features</code></em>
- is not <code class="literal">NULL</code>, it will be used to control the
+ is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, it will be used to control the
 features applied during shaping.</p>
 <div class="refsect3">
-<a name="hb-shape.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.9.9.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -235,8 +236,8 @@ features applied during shaping.</p>
 <tr>
 <td class="parameter_name"><p>features</p></td>
 <td class="parameter_description"><p> an array of user
-specified <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> or <code class="literal">NULL</code>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+specified <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>num_features</p></td>
@@ -247,11 +248,7 @@ array</p></td>
 </tbody>
 </table></div>
 </div>
-<div class="refsect3">
-<a name="hb-shape.returns"></a><h4>Returns</h4>
-<p> <code class="literal">FALSE</code> if all shapers failed, <code class="literal">TRUE</code> otherwise</p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -263,11 +260,11 @@ hb_shape_full (<em class="parameter"><code><a class="link" href="harfbuzz-hb-fon
                <em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>,
                <em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
 <p>See <a class="link" href="harfbuzz-Shaping.html#hb-shape" title="hb_shape ()"><code class="function">hb_shape()</code></a> for details. If <em class="parameter"><code>shaper_list</code></em>
- is not <code class="literal">NULL</code>, the specified
+ is not <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the specified
 shapers will be used in the given order, otherwise the default shapers list
 will be used.</p>
 <div class="refsect3">
-<a name="hb-shape-full.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.9.9.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -288,8 +285,8 @@ will be used.</p>
 <tr>
 <td class="parameter_name"><p>features</p></td>
 <td class="parameter_description"><p> an array of user
-specified <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> or <code class="literal">NULL</code>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+specified <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_features][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>num_features</p></td>
@@ -299,18 +296,19 @@ array</p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>shaper_list</p></td>
-<td class="parameter_description"><p> a <code class="literal">NULL</code>-terminated
-array of shapers to use or <code class="literal">NULL</code>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
+<td class="parameter_description"><p> a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated
+array of shapers to use or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-shape-full.returns"></a><h4>Returns</h4>
-<p> <code class="literal">FALSE</code> if all shapers failed, <code class="literal">TRUE</code> otherwise</p>
+<a name="id-1.3.3.9.9.5.6"></a><h4>Returns</h4>
+<p> <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if all shapers failed, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> otherwise</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -319,12 +317,12 @@ array of shapers to use or <code class="literal">NULL</code>. </p></td>
 hb_shape_list_shapers (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Retrieves the list of shapers supported by HarfBuzz.</p>
 <div class="refsect3">
-<a name="hb-shape-list-shapers.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.9.9.6.5"></a><h4>Returns</h4>
 <p> an array of
 constant strings. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 </div>
 <div class="refsect1">
@@ -342,6 +340,7 @@ constant strings. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index fa54243..91222c9 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-blob: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-blob</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-Buffers.html" title="Buffers">
 <link rel="next" href="harfbuzz-hb-face.html" title="hb-face">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-blob.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-blob.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-hb-blob.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-blob.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">╰──</span> hb_blob_t
-    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+    GEnum
     <span class="lineart">╰──</span> hb_memory_mode_t
 </pre>
 </div>
@@ -182,9 +182,8 @@ hb_blob_create (<em class="parameter"><code>const <span class="type">char</span>
  parameter is used
 to negotiate ownership and lifecycle of <em class="parameter"><code>data</code></em>
 .</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-blob-create.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -225,12 +224,13 @@ is not needed anymore.</p></td>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-blob-create.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.2.6"></a><h4>Returns</h4>
 <p> New blob, or the empty blob if something failed or if <em class="parameter"><code>length</code></em>
 is
 zero.  Destroy with <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()"><code class="function">hb_blob_destroy()</code></a>.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -248,7 +248,7 @@ is.</p>
 <p>Makes <em class="parameter"><code>parent</code></em>
  immutable.</p>
 <div class="refsect3">
-<a name="hb-blob-create-sub-blob.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -276,15 +276,16 @@ is.</p>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-blob-create-sub-blob.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.3.7"></a><h4>Returns</h4>
 <p> New blob, or the empty blob if something failed or if
 <em class="parameter"><code>length</code></em>
 is zero or <em class="parameter"><code>offset</code></em>
 is beyond the end of <em class="parameter"><code>parent</code></em>
 's data.  Destroy
 with <a class="link" href="harfbuzz-hb-blob.html#hb-blob-destroy" title="hb_blob_destroy ()"><code class="function">hb_blob_destroy()</code></a>.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -297,9 +298,8 @@ hb_blob_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-b
 , freeing all memory, possibly calling the destroy-callback the blob
 was created for if it has not been called already.</p>
 <p>See TODO:link object types for more information.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-blob-destroy.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.4.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -313,7 +313,7 @@ was created for if it has not been called already.</p>
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -322,7 +322,7 @@ was created for if it has not been called already.</p>
 hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
                   <em class="parameter"><code>unsigned <span class="type">int</span> *length</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-blob-get-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.5.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -344,11 +344,11 @@ hb_blob_get_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-blob-get-data.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.5.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -361,7 +361,7 @@ return pointer to data.</p>
 <p>Fails if blob has been made immutable, or if memory allocation
 fails.</p>
 <div class="refsect3">
-<a name="hb-blob-get-data-writable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.6.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -383,12 +383,12 @@ fails.</p>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-blob-get-data-writable.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.6.7"></a><h4>Returns</h4>
 <p> Writable blob data,
-or <code class="literal">NULL</code> if failed. </p>
+or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if failed. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -398,11 +398,11 @@ hb_blob_get_empty (<em class="parameter"><code><span class="type">void</span></c
 <p>Returns the singleton empty blob.</p>
 <p>See TODO:link object types for more information.</p>
 <div class="refsect3">
-<a name="hb-blob-get-empty.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.7.6"></a><h4>Returns</h4>
 <p> the empty blob. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -410,7 +410,7 @@ hb_blob_get_empty (<em class="parameter"><code><span class="type">void</span></c
 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
 hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-blob-get-length.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.8.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -425,10 +425,11 @@ hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-h
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-blob-get-length.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.8.5"></a><h4>Returns</h4>
 <p> the length of blob data in bytes.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -436,9 +437,8 @@ hb_blob_get_length (<em class="parameter"><code><a class="link" href="harfbuzz-h
 <pre class="programlisting"><span class="returnvalue">void</span> *
 hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-blob-get-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.9.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -460,11 +460,11 @@ hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-blob-get-user-data.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.9.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -472,7 +472,7 @@ hb_blob_get_user_data (<em class="parameter"><code><a class="link" href="harfbuz
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-blob-is-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.10.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -487,10 +487,11 @@ hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-blob-is-immutable.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.10.5"></a><h4>Returns</h4>
 <p> TODO</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -498,7 +499,7 @@ hb_blob_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-blob-make-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.11.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -512,7 +513,7 @@ hb_blob_make_immutable (<em class="parameter"><code><a class="link" href="harfbu
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -522,9 +523,8 @@ hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 <p>Increases the reference count on <em class="parameter"><code>blob</code></em>
 .</p>
 <p>See TODO:link object types for more information.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-blob-reference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.12.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -539,11 +539,12 @@ hb_blob_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-blob-reference.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.6.8.12.7"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>blob</code></em>
 .</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -554,9 +555,8 @@ hb_blob_set_user_data (<em class="parameter"><code><a class="link" href="harfbuz
                        <em class="parameter"><code><span class="type">void</span> *data</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-blob-set-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.6.8.13.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -593,7 +593,11 @@ is not needed anymore.</p></td>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.6.8.13.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 </div>
 <div class="refsect1">
@@ -607,7 +611,7 @@ is not needed anymore.</p></td>
 <div class="refsect2">
 <a name="hb-memory-mode-t"></a><h3>enum hb_memory_mode_t</h3>
 <div class="refsect3">
-<a name="hb-memory-mode-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.6.9.3.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -642,6 +646,7 @@ is not needed anymore.</p></td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 064be6e..24f34d7 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-common: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-common</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb.html" title="hb">
 <link rel="next" href="harfbuzz-hb-unicode.html" title="hb-unicode">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-common.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-common.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-hb-common.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <a class="link" href="harfbuzz-hb-common.html#HB-DIRECTION-IS-VERTICAL:CAPS" title="HB_DIRECTION_IS_VERTICAL()">HB_DIRECTION_IS_VERTICAL</a><span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS" title="HB_LANGUAGE_INVALID">HB_LANGUAGE_INVALID</a></td>
+</tr>
 </tbody>
 </table></div>
 </div>
 <td class="define_keyword">#define</td>
 <td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-TAG-MAX-SIGNED:CAPS" title="HB_TAG_MAX_SIGNED">HB_TAG_MAX_SIGNED</a></td>
 </tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS" title="HB_LANGUAGE_INVALID">HB_LANGUAGE_INVALID</a></td>
-</tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-common.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">╰──</span> hb_user_data_key_t
-    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+    GEnum
     <span class="lineart">├──</span> hb_direction_t
     <span class="lineart">╰──</span> hb_script_t
 </pre>
 hb_tag_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
                     <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-tag-from-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.3.8.2.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -286,7 +286,11 @@ hb_tag_from_string (<em class="parameter"><code>const <span class="type">char</s
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.2.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -295,7 +299,7 @@ hb_tag_from_string (<em class="parameter"><code>const <span class="type">char</s
 hb_tag_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>,
                   <em class="parameter"><code><span class="type">char</span> *buf</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-tag-to-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.3.8.3.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -305,11 +309,11 @@ hb_tag_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 <tbody><tr>
 <td class="parameter_name"><p>buf</p></td>
 <td class="parameter_description"><p>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> fixed-size=4]</span></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> fixed-size=4][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> uint8_t]</span></td>
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-5.html#api-index-0.9.5">0.9.5</a></p>
+<p class="since">Since 0.9.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -318,7 +322,7 @@ hb_tag_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 hb_direction_from_string (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
                           <em class="parameter"><code><span class="type">int</span> len</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-direction-from-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.3.8.4.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -332,7 +336,11 @@ hb_direction_from_string (<em class="parameter"><code>const <span class="type">c
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.4.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -340,11 +348,11 @@ hb_direction_from_string (<em class="parameter"><code>const <span class="type">c
 <pre class="programlisting">const <span class="returnvalue">char</span> *
 hb_direction_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-direction-to-string.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.3.8.5.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -353,7 +361,7 @@ hb_direction_to_string (<em class="parameter"><code><a class="link" href="harfbu
 hb_script_from_iso15924_tag (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>);</pre>
 <p>Converts an ISO 15924 script tag to a corresponding <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a>.</p>
 <div class="refsect3">
-<a name="hb-script-from-iso15924-tag.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.3.8.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -368,10 +376,11 @@ hb_script_from_iso15924_tag (<em class="parameter"><code><a class="link" href="h
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-script-from-iso15924-tag.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.3.8.6.6"></a><h4>Returns</h4>
 <p>An <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> corresponding to the ISO 15924 tag.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -384,7 +393,7 @@ hb_script_from_string (<em class="parameter"><code>const <span class="type">char
 corresponding <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a>. Shorthand for <a class="link" href="harfbuzz-hb-common.html#hb-tag-from-string" title="hb_tag_from_string ()"><code class="function">hb_tag_from_string()</code></a> then
 <a class="link" href="harfbuzz-hb-common.html#hb-script-from-iso15924-tag" title="hb_script_from_iso15924_tag ()"><code class="function">hb_script_from_iso15924_tag()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-script-from-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.3.8.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -401,17 +410,18 @@ ISO 15924 tag. </p></td>
 <tr>
 <td class="parameter_name"><p>len</p></td>
 <td class="parameter_description"><p>length of the <em class="parameter"><code>str</code></em>
-, or -1 if it is <code class="literal">NULL</code>-terminated.</p></td>
+, or -1 if it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-script-from-string.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.3.8.7.6"></a><h4>Returns</h4>
 <p>An <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> corresponding to the ISO 15924 tag.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -420,7 +430,7 @@ ISO 15924 tag. </p></td>
 hb_script_to_iso15924_tag (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> script</code></em>);</pre>
 <p>See <a class="link" href="harfbuzz-hb-common.html#hb-script-from-iso15924-tag" title="hb_script_from_iso15924_tag ()"><code class="function">hb_script_from_iso15924_tag()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-script-to-iso15924-tag.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.3.8.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -435,17 +445,22 @@ hb_script_to_iso15924_tag (<em class="parameter"><code><a class="link" href="har
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-script-to-iso15924-tag.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.3.8.8.6"></a><h4>Returns</h4>
 <p>An <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> representing an ISO 15924 script tag.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-script-get-horizontal-direction"></a><h3>hb_script_get_horizontal_direction ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="returnvalue">hb_direction_t</span></a>
 hb_script_get_horizontal_direction (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> script</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.3.8.9.4"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -457,7 +472,7 @@ hb_language_from_string (<em class="parameter"><code>const <span class="type">ch
  representing an ISO 639 language code to the corresponding
 <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a>.</p>
 <div class="refsect3">
-<a name="hb-language-from-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.3.8.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -474,18 +489,18 @@ ISO 639 language code. </p></td>
 <tr>
 <td class="parameter_name"><p>len</p></td>
 <td class="parameter_description"><p>length of the <em class="parameter"><code>str</code></em>
-, or -1 if it is <code class="literal">NULL</code>-terminated.</p></td>
+, or -1 if it is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated.</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-language-from-string.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.3.8.10.6"></a><h4>Returns</h4>
 <p>The <a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> corresponding to the ISO 639 language code. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -494,7 +509,7 @@ ISO 639 language code. </p></td>
 hb_language_to_string (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="type">hb_language_t</span></a> language</code></em>);</pre>
 <p>See <a class="link" href="harfbuzz-hb-common.html#hb-language-from-string" title="hb_language_from_string ()"><code class="function">hb_language_from_string()</code></a>.</p>
 <div class="refsect3">
-<a name="hb-language-to-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.3.8.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -509,13 +524,13 @@ hb_language_to_string (<em class="parameter"><code><a class="link" href="harfbuz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-language-to-string.returns"></a><h4>Returns</h4>
-<p>A <code class="literal">NULL</code>-terminated string representing the <em class="parameter"><code>language</code></em>
+<a name="id-1.3.3.3.8.11.6"></a><h4>Returns</h4>
+<p>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated string representing the <em class="parameter"><code>language</code></em>
 . Must not be freed by
 the caller. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -523,11 +538,11 @@ the caller. </p>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
 hb_language_get_default (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <div class="refsect3">
-<a name="hb-language-get-default.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.3.8.12.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -583,6 +598,12 @@ hb_language_get_default (<em class="parameter"><code><span class="type">void</sp
 <pre class="programlisting">#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) &amp; ~1U) == 6)
 </pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="HB-LANGUAGE-INVALID:CAPS"></a><h3>HB_LANGUAGE_INVALID</h3>
+<pre class="programlisting">#define HB_LANGUAGE_INVALID ((hb_language_t) NULL)
+</pre>
+</div>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-common.other_details"></a><h2>Types and Values</h2>
@@ -601,7 +622,7 @@ hb_language_get_default (<em class="parameter"><code><span class="type">void</sp
 <div class="refsect2">
 <a name="hb-direction-t"></a><h3>enum hb_direction_t</h3>
 <div class="refsect3">
-<a name="hb-direction-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.3.9.4.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -676,7 +697,7 @@ hb_language_get_default (<em class="parameter"><code><span class="type">void</sp
 <div class="refsect2">
 <a name="hb-script-t"></a><h3>enum hb_script_t</h3>
 <div class="refsect3">
-<a name="hb-script-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.3.9.9.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1345,6 +1366,36 @@ hb_language_get_default (<em class="parameter"><code><span class="type">void</sp
 <td> </td>
 </tr>
 <tr>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-ADLAM:CAPS"></a>HB_SCRIPT_ADLAM</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-BHAIKSUKI:CAPS"></a>HB_SCRIPT_BHAIKSUKI</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-MARCHEN:CAPS"></a>HB_SCRIPT_MARCHEN</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-OSAGE:CAPS"></a>HB_SCRIPT_OSAGE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-TANGUT:CAPS"></a>HB_SCRIPT_TANGUT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="HB-SCRIPT-NEWA:CAPS"></a>HB_SCRIPT_NEWA</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
 <td class="enum_member_name"><p><a name="HB-SCRIPT-INVALID:CAPS"></a>HB_SCRIPT_INVALID</p></td>
 <td> </td>
 <td> </td>
@@ -1392,15 +1443,10 @@ hb_language_get_default (<em class="parameter"><code><span class="type">void</sp
 <pre class="programlisting">#define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff)
 </pre>
 </div>
-<hr>
-<div class="refsect2">
-<a name="HB-LANGUAGE-INVALID:CAPS"></a><h3>HB_LANGUAGE_INVALID</h3>
-<pre class="programlisting">#define HB_LANGUAGE_INVALID ((hb_language_t) NULL)
-</pre>
-</div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 68615e0..ddef17e 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-coretext: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-coretext</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-uniscribe.html" title="hb-uniscribe">
 <link rel="next" href="harfbuzz-hb-gobject.html" title="hb-gobject">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-coretext.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-coretext.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-coretext.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-coretext.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-coretext.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -124,6 +130,7 @@ hb_coretext_font_get_ct_font (<em class="parameter"><code><a class="link" href="
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 13beba0..d431eb9 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-deprecated: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-deprecated</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-version.html" title="hb-version">
 <link rel="next" href="harfbuzz-hb-set.html" title="hb-set">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-deprecated.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-deprecated.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-deprecated.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-deprecated.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-deprecated.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-deprecated.functions_details"></a><h2>Functions</h2>
-<p></p>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-deprecated.other_details"></a><h2>Types and Values</h2>
@@ -86,6 +91,7 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ddc16d0..527089e 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-face: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-face</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-blob.html" title="hb-blob">
 <link rel="next" href="harfbuzz-hb-font.html" title="hb-font">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-face.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-face.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-hb-face.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-face.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">╰──</span> hb_face_t
 </pre>
 </div>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
 hb_face_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="type">hb_blob_t</span></a> *blob</code></em>,
                 <em class="parameter"><code>unsigned <span class="type">int</span> index</code></em>);</pre>
-<p><span class="annotation">[Xconstructor]</span></p>
-<div class="refsect3">
-<a name="hb-face-create.returns"></a><h4>Returns</h4>
-<p>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -221,7 +214,7 @@ hb_face_create_for_tables (<em class="parameter"><code><a class="link" href="har
                            <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                            <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-create-for-tables.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.3.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -236,19 +229,19 @@ hb_face_create_for_tables (<em class="parameter"><code><a class="link" href="har
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-face-create-for-tables.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.7.8.3.5"></a><h4>Returns</h4>
 <p> (transfer full)</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-face-destroy"></a><h3>hb_face_destroy ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-face-destroy.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.4.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -262,7 +255,7 @@ hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-f
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -270,10 +263,11 @@ hb_face_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-f
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
 hb_face_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-get-empty.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.7.8.5.4"></a><h4>Returns</h4>
 <p> (transfer full)</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -281,7 +275,7 @@ hb_face_get_empty (<em class="parameter"><code><span class="type">void</span></c
 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
 hb_face_get_glyph_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-get-glyph-count.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.6.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -295,7 +289,11 @@ hb_face_get_glyph_count (<em class="parameter"><code><a class="link" href="harfb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.7.8.6.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -303,7 +301,7 @@ hb_face_get_glyph_count (<em class="parameter"><code><a class="link" href="harfb
 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
 hb_face_get_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-get-index.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.7.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -317,7 +315,11 @@ hb_face_get_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.7.8.7.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -325,7 +327,7 @@ hb_face_get_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
 hb_face_get_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-get-upem.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.8.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -339,7 +341,11 @@ hb_face_get_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.7.8.8.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -347,9 +353,8 @@ hb_face_get_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 <pre class="programlisting"><span class="returnvalue">void</span> *
 hb_face_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-face-get-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.9.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -364,11 +369,11 @@ hb_face_get_user_data (<em class="parameter"><code><a class="link" href="harfbuz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-face-get-user-data.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.7.8.9.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -376,7 +381,7 @@ hb_face_get_user_data (<em class="parameter"><code><a class="link" href="harfbuz
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 hb_face_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-is-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.10.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -390,7 +395,11 @@ hb_face_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.7.8.10.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -398,7 +407,7 @@ hb_face_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_face_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-make-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.11.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -412,16 +421,15 @@ hb_face_make_immutable (<em class="parameter"><code><a class="link" href="harfbu
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-face-reference"></a><h3>hb_face_reference ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
 hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-face-reference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.12.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -435,7 +443,11 @@ hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.7.8.12.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -443,7 +455,7 @@ hb_face_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
 hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-reference-blob.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.13.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -458,11 +470,11 @@ hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbu
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-face-reference-blob.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.7.8.13.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -471,7 +483,7 @@ hb_face_reference_blob (<em class="parameter"><code><a class="link" href="harfbu
 hb_face_reference_table (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                          <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-reference-table.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.14.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -486,11 +498,11 @@ hb_face_reference_table (<em class="parameter"><code><a class="link" href="harfb
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-face-reference-table.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.7.8.14.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -499,7 +511,7 @@ hb_face_reference_table (<em class="parameter"><code><a class="link" href="harfb
 hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                          <em class="parameter"><code>unsigned <span class="type">int</span> glyph_count</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-set-glyph-count.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.15.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -513,7 +525,7 @@ hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -522,7 +534,7 @@ hb_face_set_glyph_count (<em class="parameter"><code><a class="link" href="harfb
 hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                    <em class="parameter"><code>unsigned <span class="type">int</span> index</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-set-index.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.16.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -536,7 +548,7 @@ hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -545,7 +557,7 @@ hb_face_set_index (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 hb_face_set_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                   <em class="parameter"><code>unsigned <span class="type">int</span> upem</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-face-set-upem.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.17.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -559,7 +571,7 @@ hb_face_set_upem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -570,9 +582,8 @@ hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuz
                        <em class="parameter"><code><span class="type">void</span> *data</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-face-set-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.7.8.18.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -586,7 +597,11 @@ hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuz
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.7.8.18.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 </div>
 <div class="refsect1">
@@ -599,6 +614,7 @@ hb_face_set_user_data (<em class="parameter"><code><a class="link" href="harfbuz
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 1a81a44..f1108dd 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-font: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-font</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-face.html" title="hb-face">
 <link rel="next" href="harfbuzz-Shaping.html" title="Shaping">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-font.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-font.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-hb-font.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-font.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">├──</span> hb_font_funcs_t
     <span class="lineart">╰──</span> hb_font_t
 </pre>
@@ -692,7 +692,7 @@ hb_font_add_glyph_origin_for_direction
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-add-glyph-origin-for-direction.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.2.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -718,35 +718,13 @@ hb_font_add_glyph_origin_for_direction
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-font-create"></a><h3>hb_font_create ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
 hb_font_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>);</pre>
-<p><span class="annotation">[Xconstructor]</span></p>
-<div class="refsect3">
-<a name="hb-font-create.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>face</p></td>
-<td class="parameter_description"><p>a face.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="hb-font-create.returns"></a><h4>Returns</h4>
-<p>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -754,7 +732,7 @@ hb_font_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-fa
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
 hb_font_create_sub_font (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *parent</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-create-sub-font.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.4.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -769,20 +747,19 @@ hb_font_create_sub_font (<em class="parameter"><code><a class="link" href="harfb
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-font-create-sub-font.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.8.9.4.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-font-destroy"></a><h3>hb_font_destroy ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_font_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-font-destroy.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.5.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -796,29 +773,21 @@ hb_font_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-f
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-font-funcs-create"></a><h3>hb_font_funcs_create ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
 hb_font_funcs_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p><span class="annotation">[Xconstructor]</span></p>
-<div class="refsect3">
-<a name="hb-font-funcs-create.returns"></a><h4>Returns</h4>
-<p>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-font-funcs-destroy"></a><h3>hb_font_funcs_destroy ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_font_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-font-funcs-destroy.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.7.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -832,7 +801,7 @@ hb_font_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuz
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -840,11 +809,11 @@ hb_font_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuz
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
 hb_font_funcs_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-get-empty.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.8.9.8.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -852,9 +821,8 @@ hb_font_funcs_get_empty (<em class="parameter"><code><span class="type">void</sp
 <pre class="programlisting"><span class="returnvalue">void</span> *
 hb_font_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-font-funcs-get-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.9.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -869,11 +837,11 @@ hb_font_funcs_get_user_data (<em class="parameter"><code><a class="link" href="h
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-font-funcs-get-user-data.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.8.9.9.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -881,7 +849,7 @@ hb_font_funcs_get_user_data (<em class="parameter"><code><a class="link" href="h
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 hb_font_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-is-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.10.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -895,7 +863,11 @@ hb_font_funcs_is_immutable (<em class="parameter"><code><a class="link" href="ha
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.10.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -903,7 +875,7 @@ hb_font_funcs_is_immutable (<em class="parameter"><code><a class="link" href="ha
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_font_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-make-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.11.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -917,16 +889,15 @@ hb_font_funcs_make_immutable (<em class="parameter"><code><a class="link" href="
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-font-funcs-reference"></a><h3>hb_font_funcs_reference ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="returnvalue">hb_font_funcs_t</span></a> *
 hb_font_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-funcs-t"><span class="type">hb_font_funcs_t</span></a> *ffuncs</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-font-funcs-reference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.12.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -940,7 +911,11 @@ hb_font_funcs_reference (<em class="parameter"><code><a class="link" href="harfb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.12.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -952,7 +927,7 @@ hb_font_funcs_set_glyph_contour_point_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-contour-point-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.13.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -973,7 +948,7 @@ hb_font_funcs_set_glyph_contour_point_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -984,7 +959,7 @@ hb_font_funcs_set_glyph_extents_func (<em class="parameter"><code><a class="link
                                       <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-extents-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.14.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1005,7 +980,7 @@ hb_font_funcs_set_glyph_extents_func (<em class="parameter"><code><a class="link
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1017,7 +992,7 @@ hb_font_funcs_set_glyph_from_name_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-from-name-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.15.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1038,7 +1013,7 @@ hb_font_funcs_set_glyph_from_name_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1052,7 +1027,7 @@ hb_font_funcs_set_glyph_func (<em class="parameter"><code><a class="link" href="
 <p>Deprecated.  Use <code class="function">hb_font_funcs_set_nominal_glyph_func()</code> and
 <code class="function">hb_font_funcs_set_variation_glyph_func()</code> instead.</p>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.16.7"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1073,7 +1048,7 @@ hb_font_funcs_set_glyph_func (<em class="parameter"><code><a class="link" href="
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1085,7 +1060,7 @@ hb_font_funcs_set_glyph_h_advance_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-h-advance-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.17.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1106,7 +1081,7 @@ hb_font_funcs_set_glyph_h_advance_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1118,7 +1093,7 @@ hb_font_funcs_set_glyph_h_kerning_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-h-kerning-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.18.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1139,7 +1114,7 @@ hb_font_funcs_set_glyph_h_kerning_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1150,7 +1125,7 @@ hb_font_funcs_set_glyph_h_origin_func (<em class="parameter"><code><a class="lin
                                        <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-h-origin-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.19.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1171,7 +1146,7 @@ hb_font_funcs_set_glyph_h_origin_func (<em class="parameter"><code><a class="lin
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1182,7 +1157,7 @@ hb_font_funcs_set_glyph_name_func (<em class="parameter"><code><a class="link" h
                                    <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-name-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.20.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1203,7 +1178,7 @@ hb_font_funcs_set_glyph_name_func (<em class="parameter"><code><a class="link" h
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1215,7 +1190,7 @@ hb_font_funcs_set_glyph_v_advance_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-v-advance-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.21.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1236,7 +1211,7 @@ hb_font_funcs_set_glyph_v_advance_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1248,7 +1223,7 @@ hb_font_funcs_set_glyph_v_kerning_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-v-kerning-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.22.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1269,7 +1244,7 @@ hb_font_funcs_set_glyph_v_kerning_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1280,7 +1255,7 @@ hb_font_funcs_set_glyph_v_origin_func (<em class="parameter"><code><a class="lin
                                        <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-glyph-v-origin-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.23.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1301,7 +1276,7 @@ hb_font_funcs_set_glyph_v_origin_func (<em class="parameter"><code><a class="lin
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1312,9 +1287,8 @@ hb_font_funcs_set_user_data (<em class="parameter"><code><a class="link" href="h
                              <em class="parameter"><code><span class="type">void</span> *data</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-font-funcs-set-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.24.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1328,7 +1302,11 @@ hb_font_funcs_set_user_data (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.24.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1336,10 +1314,11 @@ hb_font_funcs_set_user_data (<em class="parameter"><code><a class="link" href="h
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
 hb_font_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-empty.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.8.9.25.4"></a><h4>Returns</h4>
 <p> (transfer full)</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1347,7 +1326,7 @@ hb_font_get_empty (<em class="parameter"><code><span class="type">void</span></c
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
 hb_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-face.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.26.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1362,11 +1341,11 @@ hb_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-font-get-face.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.8.9.26.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1377,7 +1356,7 @@ hb_font_get_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb
                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> variation_selector</code></em>,
                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.27.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1398,7 +1377,11 @@ hb_font_get_glyph (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.27.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1411,7 +1394,7 @@ hb_font_get_glyph_advance_for_direction
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-advance-for-direction.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.28.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1437,7 +1420,7 @@ hb_font_get_glyph_advance_for_direction
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1458,7 +1441,7 @@ hb_font_get_glyph_contour_point (<em class="parameter"><code><a class="link" hre
                                  <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                                  <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-contour-point.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.30.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1484,7 +1467,11 @@ hb_font_get_glyph_contour_point (<em class="parameter"><code><a class="link" hre
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.30.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1498,7 +1485,7 @@ hb_font_get_glyph_contour_point_for_origin
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-contour-point-for-origin.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.31.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1524,7 +1511,11 @@ hb_font_get_glyph_contour_point_for_origin
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.31.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1547,7 +1538,7 @@ hb_font_get_glyph_extents (<em class="parameter"><code><a class="link" href="har
                            <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>,
                            <em class="parameter"><code><span class="type">hb_glyph_extents_t</span> *extents</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-extents.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.33.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1568,7 +1559,11 @@ hb_font_get_glyph_extents (<em class="parameter"><code><a class="link" href="har
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.33.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1579,7 +1574,7 @@ hb_font_get_glyph_extents_for_origin (<em class="parameter"><code><a class="link
                                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
                                       <em class="parameter"><code><span class="type">hb_glyph_extents_t</span> *extents</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-extents-for-origin.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.34.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1600,7 +1595,11 @@ hb_font_get_glyph_extents_for_origin (<em class="parameter"><code><a class="link
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.34.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1621,7 +1620,7 @@ hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="h
                              <em class="parameter"><code><span class="type">int</span> len</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-from-name.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.36.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1647,7 +1646,11 @@ hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="h
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.36.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1677,7 +1680,7 @@ hb_font_get_glyph_from_name (<em class="parameter"><code><a class="link" href="h
 hb_font_get_glyph_h_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-h-advance.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.39.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1691,7 +1694,11 @@ hb_font_get_glyph_h_advance (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.39.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1701,7 +1708,7 @@ hb_font_get_glyph_h_kerning (<em class="parameter"><code><a class="link" href="h
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> left_glyph</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> right_glyph</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-h-kerning.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.40.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1715,7 +1722,11 @@ hb_font_get_glyph_h_kerning (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.40.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1726,7 +1737,7 @@ hb_font_get_glyph_h_origin (<em class="parameter"><code><a class="link" href="ha
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-h-origin.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.41.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1752,7 +1763,11 @@ hb_font_get_glyph_h_origin (<em class="parameter"><code><a class="link" href="ha
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.41.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1766,7 +1781,7 @@ hb_font_get_glyph_kerning_for_direction
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-kerning-for-direction.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.42.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1792,7 +1807,7 @@ hb_font_get_glyph_kerning_for_direction
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1813,7 +1828,7 @@ hb_font_get_glyph_name (<em class="parameter"><code><a class="link" href="harfbu
                         <em class="parameter"><code><span class="type">char</span> *name</code></em>,
                         <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-name.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.44.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1834,7 +1849,11 @@ hb_font_get_glyph_name (<em class="parameter"><code><a class="link" href="harfbu
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.44.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1858,7 +1877,7 @@ hb_font_get_glyph_origin_for_direction
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-origin-for-direction.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.46.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1884,7 +1903,7 @@ hb_font_get_glyph_origin_for_direction
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1904,7 +1923,7 @@ hb_font_get_glyph_origin_for_direction
 hb_font_get_glyph_v_advance (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-v-advance.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.48.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1918,7 +1937,11 @@ hb_font_get_glyph_v_advance (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.48.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1928,7 +1951,7 @@ hb_font_get_glyph_v_kerning (<em class="parameter"><code><a class="link" href="h
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> top_glyph</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> bottom_glyph</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-v-kerning.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.49.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1942,7 +1965,11 @@ hb_font_get_glyph_v_kerning (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.49.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1953,7 +1980,7 @@ hb_font_get_glyph_v_origin (<em class="parameter"><code><a class="link" href="ha
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-glyph-v-origin.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.50.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1979,7 +2006,11 @@ hb_font_get_glyph_v_origin (<em class="parameter"><code><a class="link" href="ha
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.50.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1987,7 +2018,7 @@ hb_font_get_glyph_v_origin (<em class="parameter"><code><a class="link" href="ha
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
 hb_font_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-parent.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.51.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2002,11 +2033,11 @@ hb_font_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-h
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-font-get-parent.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.8.9.51.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2016,7 +2047,7 @@ hb_font_get_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
                   <em class="parameter"><code>unsigned <span class="type">int</span> *x_ppem</code></em>,
                   <em class="parameter"><code>unsigned <span class="type">int</span> *y_ppem</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-ppem.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.52.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2042,7 +2073,7 @@ hb_font_get_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2052,7 +2083,7 @@ hb_font_get_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb
                    <em class="parameter"><code><span class="type">int</span> *x_scale</code></em>,
                    <em class="parameter"><code><span class="type">int</span> *y_scale</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-scale.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.53.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2078,7 +2109,7 @@ hb_font_get_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2086,9 +2117,8 @@ hb_font_get_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 <pre class="programlisting"><span class="returnvalue">void</span> *
 hb_font_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-font-get-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.54.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2103,11 +2133,11 @@ hb_font_get_user_data (<em class="parameter"><code><a class="link" href="harfbuz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-font-get-user-data.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.8.9.54.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2118,7 +2148,7 @@ hb_font_glyph_from_string (<em class="parameter"><code><a class="link" href="har
                            <em class="parameter"><code><span class="type">int</span> len</code></em>,
                            <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyph</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-glyph-from-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.55.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2144,7 +2174,11 @@ hb_font_glyph_from_string (<em class="parameter"><code><a class="link" href="har
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.55.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2155,7 +2189,7 @@ hb_font_glyph_to_string (<em class="parameter"><code><a class="link" href="harfb
                          <em class="parameter"><code><span class="type">char</span> *s</code></em>,
                          <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-glyph-to-string.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.56.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2176,7 +2210,7 @@ hb_font_glyph_to_string (<em class="parameter"><code><a class="link" href="harfb
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2184,7 +2218,7 @@ hb_font_glyph_to_string (<em class="parameter"><code><a class="link" href="harfb
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 hb_font_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-is-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.57.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2198,7 +2232,11 @@ hb_font_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.57.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2206,7 +2244,7 @@ hb_font_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_font_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-make-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.58.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2220,16 +2258,15 @@ hb_font_make_immutable (<em class="parameter"><code><a class="link" href="harfbu
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-font-reference"></a><h3>hb_font_reference ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
 hb_font_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-font-reference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.59.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2244,11 +2281,11 @@ hb_font_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-font-reference.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.8.9.59.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2259,7 +2296,7 @@ hb_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb
                    <em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-set-funcs.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.60.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2280,7 +2317,7 @@ hb_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2290,7 +2327,7 @@ hb_font_set_funcs_data (<em class="parameter"><code><a class="link" href="harfbu
                         <em class="parameter"><code><span class="type">void</span> *font_data</code></em>,
                         <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-set-funcs-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.61.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2311,7 +2348,7 @@ hb_font_set_funcs_data (<em class="parameter"><code><a class="link" href="harfbu
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2321,7 +2358,7 @@ hb_font_set_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
                   <em class="parameter"><code>unsigned <span class="type">int</span> x_ppem</code></em>,
                   <em class="parameter"><code>unsigned <span class="type">int</span> y_ppem</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-set-ppem.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.62.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2335,7 +2372,7 @@ hb_font_set_ppem (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2345,7 +2382,7 @@ hb_font_set_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb
                    <em class="parameter"><code><span class="type">int</span> x_scale</code></em>,
                    <em class="parameter"><code><span class="type">int</span> y_scale</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-set-scale.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.63.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2359,7 +2396,7 @@ hb_font_set_scale (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2370,9 +2407,8 @@ hb_font_set_user_data (<em class="parameter"><code><a class="link" href="harfbuz
                        <em class="parameter"><code><span class="type">void</span> *data</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-font-set-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.64.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2386,7 +2422,11 @@ hb_font_set_user_data (<em class="parameter"><code><a class="link" href="harfbuz
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.64.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2399,7 +2439,7 @@ hb_font_subtract_glyph_origin_for_direction
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *x</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-position-t" title="hb_position_t"><span class="type">hb_position_t</span></a> *y</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-subtract-glyph-origin-for-direction.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.65.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2425,7 +2465,7 @@ hb_font_subtract_glyph_origin_for_direction
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2444,7 +2484,7 @@ hb_font_funcs_set_font_h_extents_func (<em class="parameter"><code><a class="lin
                                        <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-font-h-extents-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.67.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2465,7 +2505,7 @@ hb_font_funcs_set_font_h_extents_func (<em class="parameter"><code><a class="lin
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-1-2.html#api-index-1.1.2">1.1.2</a></p>
+<p class="since">Since 1.1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2476,7 +2516,7 @@ hb_font_funcs_set_font_v_extents_func (<em class="parameter"><code><a class="lin
                                        <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                        <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-funcs-set-font-v-extents-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.68.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2497,7 +2537,7 @@ hb_font_funcs_set_font_v_extents_func (<em class="parameter"><code><a class="lin
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-1-2.html#api-index-1.1.2">1.1.2</a></p>
+<p class="since">Since 1.1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2507,7 +2547,7 @@ hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" h
                                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-direction-t" title="enum hb_direction_t"><span class="type">hb_direction_t</span></a> direction</code></em>,
                                    <em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-extents-for-direction.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.69.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2521,7 +2561,7 @@ hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-1-3.html#api-index-1.1.3">1.1.3</a></p>
+<p class="since">Since 1.1.3</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2539,7 +2579,7 @@ hb_font_get_extents_for_direction (<em class="parameter"><code><a class="link" h
 hb_font_get_h_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
                        <em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-h-extents.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.71.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2560,7 +2600,11 @@ hb_font_get_h_extents (<em class="parameter"><code><a class="link" href="harfbuz
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-1-3.html#api-index-1.1.3">1.1.3</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.71.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 1.1.3</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2569,7 +2613,7 @@ hb_font_get_h_extents (<em class="parameter"><code><a class="link" href="harfbuz
 hb_font_get_v_extents (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
                        <em class="parameter"><code><span class="type">hb_font_extents_t</span> *extents</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-font-get-v-extents.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.72.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2590,7 +2634,11 @@ hb_font_get_v_extents (<em class="parameter"><code><a class="link" href="harfbuz
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-1-3.html#api-index-1.1.3">1.1.3</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.8.9.72.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 1.1.3</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2601,7 +2649,7 @@ hb_font_set_parent (<em class="parameter"><code><a class="link" href="harfbuzz-h
 <p>Sets parent font of <em class="parameter"><code>font</code></em>
 .</p>
 <div class="refsect3">
-<a name="hb-font-set-parent.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.8.9.73.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -2622,7 +2670,7 @@ hb_font_set_parent (<em class="parameter"><code><a class="link" href="harfbuzz-h
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-1-0-5.html#api-index-1.0.5">1.0.5</a></p>
+<p class="since">Since 1.0.5</p>
 </div>
 </div>
 <div class="refsect1">
@@ -2689,6 +2737,7 @@ hb_font_set_parent (<em class="parameter"><code><a class="link" href="harfbuzz-h
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 66c83db..695d405 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-ft: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-ft</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-icu.html" title="hb-icu">
 <link rel="next" href="harfbuzz-hb-graphite2.html" title="hb-graphite2">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-ft.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ft.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ft.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-ft.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-ft.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
 hb_ft_face_create (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>,
                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-ft-face-create.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.21.6.2.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -140,11 +146,11 @@ hb_ft_face_create (<em class="parameter"><code><span class="type">FT_Face</span>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-ft-face-create.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.21.6.2.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -152,11 +158,11 @@ hb_ft_face_create (<em class="parameter"><code><span class="type">FT_Face</span>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
 hb_ft_face_create_cached (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-ft-face-create-cached.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.21.6.3.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -164,11 +170,11 @@ hb_ft_face_create_cached (<em class="parameter"><code><span class="type">FT_Face
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="returnvalue">hb_face_t</span></a> *
 hb_ft_face_create_referenced (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-ft-face-create-referenced.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.21.6.4.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-38.html#api-index-0.9.38">0.9.38</a></p>
+<p class="since">Since 0.9.38</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -177,7 +183,7 @@ hb_ft_face_create_referenced (<em class="parameter"><code><span class="type">FT_
 hb_ft_font_create (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>,
                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-ft-font-create.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.21.6.5.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -192,11 +198,11 @@ hb_ft_font_create (<em class="parameter"><code><span class="type">FT_Face</span>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-ft-font-create.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.21.6.5.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -204,11 +210,11 @@ hb_ft_font_create (<em class="parameter"><code><span class="type">FT_Face</span>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="returnvalue">hb_font_t</span></a> *
 hb_ft_font_create_referenced (<em class="parameter"><code><span class="type">FT_Face</span> ft_face</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-ft-font-create-referenced.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.21.6.6.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-38.html#api-index-0.9.38">0.9.38</a></p>
+<p class="since">Since 0.9.38</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -222,14 +228,18 @@ hb_ft_font_get_face (<em class="parameter"><code><a class="link" href="harfbuzz-
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_ft_font_set_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>,
                            <em class="parameter"><code><span class="type">int</span> load_flags</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-1-0-5.html#api-index-1.0.5">1.0.5</a></p>
+<p class="since">Since 1.0.5</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-ft-font-get-load-flags"></a><h3>hb_ft_font_get_load_flags ()</h3>
 <pre class="programlisting"><span class="returnvalue">int</span>
 hb_ft_font_get_load_flags (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-1-0-5.html#api-index-1.0.5">1.0.5</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.21.6.9.4"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 1.0.5</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -243,6 +253,7 @@ hb_ft_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 342625c..ff1790f 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-glib: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-glib</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">
 <link rel="next" href="harfbuzz-hb-icu.html" title="hb-icu">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-glib.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-glib.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-glib.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -49,7 +50,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GUnicodeScript</span>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-glib.html#hb-glib-script-from-script" title="hb_glib_script_from_script ()">hb_glib_script_from_script</a> <span class="c_punctuation">()</span>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-glib.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-glib.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -87,21 +93,21 @@ hb_glib_get_unicode_funcs (<em class="parameter"><code><span class="type">void</
 <hr>
 <div class="refsect2">
 <a name="hb-glib-script-from-script"></a><h3>hb_glib_script_from_script ()</h3>
-<pre class="programlisting"><span class="returnvalue">GUnicodeScript</span>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="returnvalue">GUnicodeScript</span></a>
 hb_glib_script_from_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="type">hb_script_t</span></a> script</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-glib-script-to-script"></a><h3>hb_glib_script_to_script ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
-hb_glib_script_to_script (<em class="parameter"><code><span class="type">GUnicodeScript</span> script</code></em>);</pre>
+hb_glib_script_to_script (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Unicode-Manipulation.html#GUnicodeScript"><span class="type">GUnicodeScript</span></a> script</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-glib-blob-create"></a><h3>hb_glib_blob_create ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-blob.html#hb-blob-t"><span class="returnvalue">hb_blob_t</span></a> *
-hb_glib_blob_create (<em class="parameter"><code><span class="type">GBytes</span> *gbytes</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-38.html#api-index-0.9.38">0.9.38</a></p>
+hb_glib_blob_create (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> *gbytes</code></em>);</pre>
+<p class="since">Since 0.9.38</p>
 </div>
 </div>
 <div class="refsect1">
@@ -109,6 +115,7 @@ hb_glib_blob_create (<em class="parameter"><code><span class="type">GBytes</span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 6dfcd08..2ab0c77 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-gobject: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-gobject</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-coretext.html" title="hb-coretext">
 <link rel="next" href="object-tree.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-gobject.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-gobject.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-gobject.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </colgroup>
 <tbody>
 <tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS" title="HB_GOBJECT_TYPE_BLOB">HB_GOBJECT_TYPE_BLOB</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS" title="HB_GOBJECT_TYPE_BUFFER">HB_GOBJECT_TYPE_BUFFER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE">HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_FLAGS">HB_GOBJECT_TYPE_BUFFER_FLAGS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS" title="HB_GOBJECT_TYPE_DIRECTION">HB_GOBJECT_TYPE_DIRECTION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS" title="HB_GOBJECT_TYPE_FACE">HB_GOBJECT_TYPE_FACE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS" title="HB_GOBJECT_TYPE_FONT">HB_GOBJECT_TYPE_FONT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS" title="HB_GOBJECT_TYPE_FONT_FUNCS">HB_GOBJECT_TYPE_FONT_FUNCS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS" title="HB_GOBJECT_TYPE_MEMORY_MODE">HB_GOBJECT_TYPE_MEMORY_MODE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS" title="HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS">HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS" title="HB_GOBJECT_TYPE_SCRIPT">HB_GOBJECT_TYPE_SCRIPT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS" title="HB_GOBJECT_TYPE_SHAPE_PLAN">HB_GOBJECT_TYPE_SHAPE_PLAN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS">HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_FUNCS">HB_GOBJECT_TYPE_UNICODE_FUNCS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS" title="HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY">HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL">HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS" title="HB_GOBJECT_TYPE_FEATURE">HB_GOBJECT_TYPE_FEATURE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS" title="HB_GOBJECT_TYPE_GLYPH_INFO">HB_GOBJECT_TYPE_GLYPH_INFO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS" title="HB_GOBJECT_TYPE_GLYPH_POSITION">HB_GOBJECT_TYPE_GLYPH_POSITION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS" title="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES">HB_GOBJECT_TYPE_SEGMENT_PROPERTIES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS" title="HB_GOBJECT_TYPE_SET">HB_GOBJECT_TYPE_SET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS" title="HB_GOBJECT_TYPE_USER_DATA_KEY">HB_GOBJECT_TYPE_USER_DATA_KEY</a></td>
+</tr>
+<tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" title="hb_gobject_blob_get_type ()">hb_gobject_blob_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type" title="hb_gobject_buffer_content_type_get_type ()">hb_gobject_buffer_content_type_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type" title="hb_gobject_buffer_flags_get_type ()">hb_gobject_buffer_flags_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" title="hb_gobject_buffer_get_type ()">hb_gobject_buffer_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type" title="hb_gobject_buffer_serialize_flags_get_type ()">hb_gobject_buffer_serialize_flags_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type" title="hb_gobject_buffer_serialize_format_get_type ()">hb_gobject_buffer_serialize_format_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type" title="hb_gobject_direction_get_type ()">hb_gobject_direction_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" title="hb_gobject_face_get_type ()">hb_gobject_face_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" title="hb_gobject_font_funcs_get_type ()">hb_gobject_font_funcs_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" title="hb_gobject_font_get_type ()">hb_gobject_font_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type" title="hb_gobject_memory_mode_get_type ()">hb_gobject_memory_mode_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type" title="hb_gobject_ot_layout_glyph_class_get_type ()">hb_gobject_ot_layout_glyph_class_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-script-get-type" title="hb_gobject_script_get_type ()">hb_gobject_script_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type" title="hb_gobject_shape_plan_get_type ()">hb_gobject_shape_plan_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type" title="hb_gobject_unicode_combining_class_get_type ()">hb_gobject_unicode_combining_class_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" title="hb_gobject_unicode_funcs_get_type ()">hb_gobject_unicode_funcs_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type" title="hb_gobject_unicode_general_category_get_type ()">hb_gobject_unicode_general_category_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type" title="hb_gobject_buffer_cluster_level_get_type ()">hb_gobject_buffer_cluster_level_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type" title="hb_gobject_feature_get_type ()">hb_gobject_feature_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type" title="hb_gobject_glyph_info_get_type ()">hb_gobject_glyph_info_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type" title="hb_gobject_glyph_position_get_type ()">hb_gobject_glyph_position_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type" title="hb_gobject_segment_properties_get_type ()">hb_gobject_segment_properties_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-set-get-type" title="hb_gobject_set_get_type ()">hb_gobject_set_get_type</a> <span class="c_punctuation">()</span>
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">GType</span>
+<a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type" title="hb_gobject_user_data_key_get_type ()">hb_gobject_user_data_key_get_type</a> <span class="c_punctuation">()</span>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="harfbuzz-hb-gobject.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="name">
-<col class="description">
-</colgroup>
-<tbody>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS" title="HB_GOBJECT_TYPE_BLOB">HB_GOBJECT_TYPE_BLOB</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS" title="HB_GOBJECT_TYPE_BUFFER">HB_GOBJECT_TYPE_BUFFER</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE">HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_FLAGS">HB_GOBJECT_TYPE_BUFFER_FLAGS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FLAGS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS" title="HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT">HB_GOBJECT_TYPE_BUFFER_SERIALIZE_FORMAT</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS" title="HB_GOBJECT_TYPE_DIRECTION">HB_GOBJECT_TYPE_DIRECTION</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS" title="HB_GOBJECT_TYPE_FACE">HB_GOBJECT_TYPE_FACE</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS" title="HB_GOBJECT_TYPE_FONT">HB_GOBJECT_TYPE_FONT</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS" title="HB_GOBJECT_TYPE_FONT_FUNCS">HB_GOBJECT_TYPE_FONT_FUNCS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS" title="HB_GOBJECT_TYPE_MEMORY_MODE">HB_GOBJECT_TYPE_MEMORY_MODE</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS" title="HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS">HB_GOBJECT_TYPE_OT_LAYOUT_GLYPH_CLASS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS" title="HB_GOBJECT_TYPE_SCRIPT">HB_GOBJECT_TYPE_SCRIPT</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS" title="HB_GOBJECT_TYPE_SHAPE_PLAN">HB_GOBJECT_TYPE_SHAPE_PLAN</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS">HB_GOBJECT_TYPE_UNICODE_COMBINING_CLASS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS" title="HB_GOBJECT_TYPE_UNICODE_FUNCS">HB_GOBJECT_TYPE_UNICODE_FUNCS</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS" title="HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY">HB_GOBJECT_TYPE_UNICODE_GENERAL_CATEGORY</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS" title="HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL">HB_GOBJECT_TYPE_BUFFER_CLUSTER_LEVEL</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS" title="HB_GOBJECT_TYPE_FEATURE">HB_GOBJECT_TYPE_FEATURE</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS" title="HB_GOBJECT_TYPE_GLYPH_INFO">HB_GOBJECT_TYPE_GLYPH_INFO</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS" title="HB_GOBJECT_TYPE_GLYPH_POSITION">HB_GOBJECT_TYPE_GLYPH_POSITION</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS" title="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES">HB_GOBJECT_TYPE_SEGMENT_PROPERTIES</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS" title="HB_GOBJECT_TYPE_SET">HB_GOBJECT_TYPE_SET</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS" title="HB_GOBJECT_TYPE_USER_DATA_KEY">HB_GOBJECT_TYPE_USER_DATA_KEY</a></td>
-</tr>
-</tbody>
-</table></div>
+<a name="harfbuzz-hb-gobject.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-gobject.description"></a><h2>Description</h2>
 <div class="refsect1">
 <a name="harfbuzz-hb-gobject.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
-<a name="hb-gobject-blob-get-type"></a><h3>hb_gobject_blob_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_blob_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-content-type-get-type"></a><h3>hb_gobject_buffer_content_type_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_content_type_get_type
-                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-flags-get-type"></a><h3>hb_gobject_buffer_flags_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_flags_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-get-type"></a><h3>hb_gobject_buffer_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-serialize-flags-get-type"></a><h3>hb_gobject_buffer_serialize_flags_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_serialize_flags_get_type
-                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-serialize-format-get-type"></a><h3>hb_gobject_buffer_serialize_format_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_serialize_format_get_type
-                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-direction-get-type"></a><h3>hb_gobject_direction_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_direction_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-face-get-type"></a><h3>hb_gobject_face_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_face_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-font-funcs-get-type"></a><h3>hb_gobject_font_funcs_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_font_funcs_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-font-get-type"></a><h3>hb_gobject_font_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_font_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-memory-mode-get-type"></a><h3>hb_gobject_memory_mode_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_memory_mode_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-ot-layout-glyph-class-get-type"></a><h3>hb_gobject_ot_layout_glyph_class_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_ot_layout_glyph_class_get_type
-                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-script-get-type"></a><h3>hb_gobject_script_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_script_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-shape-plan-get-type"></a><h3>hb_gobject_shape_plan_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_shape_plan_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-unicode-combining-class-get-type"></a><h3>hb_gobject_unicode_combining_class_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_unicode_combining_class_get_type
-                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-unicode-funcs-get-type"></a><h3>hb_gobject_unicode_funcs_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_unicode_funcs_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-unicode-general-category-get-type"></a><h3>hb_gobject_unicode_general_category_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_unicode_general_category_get_type
-                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-buffer-cluster-level-get-type"></a><h3>hb_gobject_buffer_cluster_level_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_buffer_cluster_level_get_type
-                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-feature-get-type"></a><h3>hb_gobject_feature_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_feature_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-glyph-info-get-type"></a><h3>hb_gobject_glyph_info_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_glyph_info_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-glyph-position-get-type"></a><h3>hb_gobject_glyph_position_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_glyph_position_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-segment-properties-get-type"></a><h3>hb_gobject_segment_properties_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_segment_properties_get_type
-                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-set-get-type"></a><h3>hb_gobject_set_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_set_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="hb-gobject-user-data-key-get-type"></a><h3>hb_gobject_user_data_key_get_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">GType</span>
-hb_gobject_user_data_key_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-</div>
-<div class="refsect1">
-<a name="harfbuzz-hb-gobject.other_details"></a><h2>Types and Values</h2>
-<div class="refsect2">
 <a name="HB-GOBJECT-TYPE-BLOB:CAPS"></a><h3>HB_GOBJECT_TYPE_BLOB</h3>
 <pre class="programlisting">#define HB_GOBJECT_TYPE_BLOB (hb_gobject_blob_get_type ())
 </pre>
@@ -643,9 +484,171 @@ hb_gobject_user_data_key_get_type (<em class="parameter"><code><span class="type
 <pre class="programlisting">#define HB_GOBJECT_TYPE_USER_DATA_KEY (hb_gobject_user_data_key_get_type ())
 </pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-blob-get-type"></a><h3>hb_gobject_blob_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_blob_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since 0.9.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-content-type-get-type"></a><h3>hb_gobject_buffer_content_type_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_buffer_content_type_get_type
+                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-flags-get-type"></a><h3>hb_gobject_buffer_flags_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_buffer_flags_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-get-type"></a><h3>hb_gobject_buffer_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_buffer_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since 0.9.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-serialize-flags-get-type"></a><h3>hb_gobject_buffer_serialize_flags_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_buffer_serialize_flags_get_type
+                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-serialize-format-get-type"></a><h3>hb_gobject_buffer_serialize_format_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_buffer_serialize_format_get_type
+                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-direction-get-type"></a><h3>hb_gobject_direction_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_direction_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-face-get-type"></a><h3>hb_gobject_face_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_face_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since 0.9.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-font-funcs-get-type"></a><h3>hb_gobject_font_funcs_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_font_funcs_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since 0.9.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-font-get-type"></a><h3>hb_gobject_font_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_font_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since 0.9.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-memory-mode-get-type"></a><h3>hb_gobject_memory_mode_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_memory_mode_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-ot-layout-glyph-class-get-type"></a><h3>hb_gobject_ot_layout_glyph_class_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_ot_layout_glyph_class_get_type
+                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-script-get-type"></a><h3>hb_gobject_script_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_script_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-shape-plan-get-type"></a><h3>hb_gobject_shape_plan_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_shape_plan_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-unicode-combining-class-get-type"></a><h3>hb_gobject_unicode_combining_class_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_unicode_combining_class_get_type
+                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-unicode-funcs-get-type"></a><h3>hb_gobject_unicode_funcs_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_unicode_funcs_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p class="since">Since 0.9.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-unicode-general-category-get-type"></a><h3>hb_gobject_unicode_general_category_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_unicode_general_category_get_type
+                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-buffer-cluster-level-get-type"></a><h3>hb_gobject_buffer_cluster_level_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_buffer_cluster_level_get_type
+                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-feature-get-type"></a><h3>hb_gobject_feature_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_feature_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-glyph-info-get-type"></a><h3>hb_gobject_glyph_info_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_glyph_info_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-glyph-position-get-type"></a><h3>hb_gobject_glyph_position_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_glyph_position_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-segment-properties-get-type"></a><h3>hb_gobject_segment_properties_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_segment_properties_get_type
+                               (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-set-get-type"></a><h3>hb_gobject_set_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_set_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="hb-gobject-user-data-key-get-type"></a><h3>hb_gobject_user_data_key_get_type ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
+hb_gobject_user_data_key_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="harfbuzz-hb-gobject.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index a19c83c..5b6dd21 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-graphite2: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-graphite2</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-ft.html" title="hb-ft">
 <link rel="next" href="harfbuzz-hb-uniscribe.html" title="hb-uniscribe">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-graphite2.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-graphite2.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-graphite2.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-graphite2.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-graphite2.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -98,6 +104,7 @@ hb_graphite2_font_get_gr_font (<em class="parameter"><code><a class="link" href=
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 906e91c..b59ef18 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-icu: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-icu</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-glib.html" title="hb-glib">
 <link rel="next" href="harfbuzz-hb-ft.html" title="hb-ft">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-icu.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-icu.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-icu.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-icu.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-icu.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -94,6 +100,7 @@ hb_icu_script_to_script (<em class="parameter"><code><span class="type">UScriptC
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 289d871..f14cf1d 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-ot-font: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-ot-font</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-ot-tag.html" title="hb-ot-tag">
 <link rel="next" href="harfbuzz-hb-ot-shape.html" title="hb-ot-shape">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-ot-font.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot-font.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot-font.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-ot-font.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-ot-font.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -57,7 +63,7 @@
 <a name="hb-ot-font-set-funcs"></a><h3>hb_ot_font_set_funcs ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_ot_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz-hb-font.html#hb-font-t"><span class="type">hb_font_t</span></a> *font</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-28.html#api-index-0.9.28">0.9.28</a></p>
+<p class="since">Since 0.9.28</p>
 </div>
 </div>
 <div class="refsect1">
@@ -65,6 +71,7 @@ hb_ot_font_set_funcs (<em class="parameter"><code><a class="link" href="harfbuzz
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 0da9306..501d8ac 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-ot-layout: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-ot-layout</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-ot.html" title="hb-ot">
 <link rel="next" href="harfbuzz-hb-ot-tag.html" title="hb-ot-tag">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-ot-layout.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot-layout.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-hb-ot-layout.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-ot-layout.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+<pre class="screen">    GEnum
     <span class="lineart">╰──</span> hb_ot_layout_glyph_class_t
 </pre>
 </div>
@@ -313,7 +313,7 @@ hb_ot_layout_collect_lookups (<em class="parameter"><code><a class="link" href="
                               <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *languages</code></em>,
                               <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *features</code></em>,
                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-8.html#api-index-0.9.8">0.9.8</a></p>
+<p class="since">Since 0.9.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -325,7 +325,7 @@ hb_ot_layout_feature_get_lookups (<em class="parameter"><code><a class="link" hr
                                   <em class="parameter"><code>unsigned <span class="type">int</span> start_offset</code></em>,
                                   <em class="parameter"><code>unsigned <span class="type">int</span> *lookup_count</code></em>,
                                   <em class="parameter"><code>unsigned <span class="type">int</span> *lookup_indexes</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -343,7 +343,7 @@ hb_ot_layout_get_attach_points (<em class="parameter"><code><a class="link" href
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="returnvalue">hb_ot_layout_glyph_class_t</span></a>
 hb_ot_layout_get_glyph_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                               <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> glyph</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -352,7 +352,7 @@ hb_ot_layout_get_glyph_class (<em class="parameter"><code><a class="link" href="
 hb_ot_layout_get_glyphs_in_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t" title="enum hb_ot_layout_glyph_class_t"><span class="type">hb_ot_layout_glyph_class_t</span></a> klass</code></em>,
                                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -375,7 +375,7 @@ hb_ot_layout_get_size_params (<em class="parameter"><code><a class="link" href="
                               <em class="parameter"><code>unsigned <span class="type">int</span> *subfamily_name_id</code></em>,
                               <em class="parameter"><code>unsigned <span class="type">int</span> *range_start</code></em>,
                               <em class="parameter"><code>unsigned <span class="type">int</span> *range_end</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-10.html#api-index-0.9.10">0.9.10</a></p>
+<p class="since">Since 0.9.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -453,7 +453,7 @@ hb_ot_layout_language_get_required_feature
                                 <em class="parameter"><code>unsigned <span class="type">int</span> language_index</code></em>,
                                 <em class="parameter"><code>unsigned <span class="type">int</span> *feature_index</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> *feature_tag</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-30.html#api-index-0.9.30">0.9.30</a></p>
+<p class="since">Since 0.9.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -466,7 +466,7 @@ hb_ot_layout_lookup_collect_glyphs (<em class="parameter"><code><a class="link"
                                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_input</code></em>,
                                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_after</code></em>,
                                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs_output</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -476,7 +476,7 @@ hb_ot_layout_lookup_substitute_closure
                                (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                                 <em class="parameter"><code>unsigned <span class="type">int</span> lookup_index</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -487,7 +487,7 @@ hb_ot_layout_lookup_would_substitute (<em class="parameter"><code><a class="link
                                       <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *glyphs</code></em>,
                                       <em class="parameter"><code>unsigned <span class="type">int</span> glyphs_length</code></em>,
                                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> zero_context</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -555,7 +555,7 @@ hb_ot_layout_table_get_script_tags (<em class="parameter"><code><a class="link"
 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
 hb_ot_layout_table_get_lookup_count (<em class="parameter"><code><a class="link" href="harfbuzz-hb-face.html#hb-face-t"><span class="type">hb_face_t</span></a> *face</code></em>,
                                      <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-22.html#api-index-0.9.22">0.9.22</a></p>
+<p class="since">Since 0.9.22</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -564,7 +564,7 @@ hb_ot_layout_table_get_lookup_count (<em class="parameter"><code><a class="link"
 hb_ot_shape_plan_collect_lookups (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
                                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> table_tag</code></em>,
                                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *lookup_indexes</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -625,7 +625,7 @@ hb_ot_layout_language_get_required_feature_index
 <div class="refsect2">
 <a name="hb-ot-layout-glyph-class-t"></a><h3>enum hb_ot_layout_glyph_class_t</h3>
 <div class="refsect3">
-<a name="hb-ot-layout-glyph-class-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.14.8.9.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -665,6 +665,7 @@ hb_ot_layout_language_get_required_feature_index
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index fa22099..b0a293f 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-ot-shape: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-ot-shape</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-ot-font.html" title="hb-ot-font">
 <link rel="next" href="harfbuzz-hb-shape-plan.html" title="hb-shape-plan">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-ot-shape.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot-shape.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot-shape.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-ot-shape.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-ot-shape.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -61,7 +67,7 @@ hb_ot_shape_glyphs_closure (<em class="parameter"><code><a class="link" href="ha
                             <em class="parameter"><code>const <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
                             <em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>,
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *glyphs</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 </div>
 <div class="refsect1">
@@ -69,6 +75,7 @@ hb_ot_shape_glyphs_closure (<em class="parameter"><code><a class="link" href="ha
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ea49a15..243eb04 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-ot-tag: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-ot-tag</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">
 <link rel="next" href="harfbuzz-hb-ot-font.html" title="hb-ot-font">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-ot-tag.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot-tag.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot-tag.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-ot-tag.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-ot-tag.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -109,11 +115,11 @@ hb_ot_tag_from_language (<em class="parameter"><code><a class="link" href="harfb
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-language-t" title="hb_language_t"><span class="returnvalue">hb_language_t</span></a>
 hb_ot_tag_to_language (<em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-tag-t" title="hb_tag_t"><span class="type">hb_tag_t</span></a> tag</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-ot-tag-to-language.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.15.7.3.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -146,6 +152,7 @@ hb_ot_tags_from_script (<em class="parameter"><code><a class="link" href="harfbu
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 00ecee7..40a64c0 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-ot: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-ot</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-set.html" title="hb-set">
 <link rel="next" href="harfbuzz-hb-ot-layout.html" title="hb-ot-layout">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-ot.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-ot.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
+<a name="harfbuzz-hb-ot.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-ot.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-ot.functions_details"></a><h2>Functions</h2>
-<p></p>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-ot.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 7b57884..c88ea5c 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-set: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-set</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">
 <link rel="next" href="harfbuzz-hb-ot.html" title="hb-ot">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-set.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-set.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-hb-set.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 </colgroup>
 <tbody>
 <tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS" title="HB_SET_VALUE_INVALID">HB_SET_VALUE_INVALID</a></td>
+</tr>
+<tr>
 <td class="function_type">
 <span class="returnvalue">void</span>
 </td>
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS" title="HB_SET_VALUE_INVALID">HB_SET_VALUE_INVALID</a></td>
-</tr>
-<tr>
+<tbody><tr>
 <td class="typedef_keyword">typedef</td>
 <td class="function_name"><a class="link" href="harfbuzz-hb-set.html#hb-set-t">hb_set_t</a></td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-set.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">╰──</span> hb_set_t
 </pre>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-set.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
+<a name="HB-SET-VALUE-INVALID:CAPS"></a><h3>HB_SET_VALUE_INVALID</h3>
+<pre class="programlisting">#define HB_SET_VALUE_INVALID ((hb_codepoint_t) -1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="hb-set-add"></a><h3>hb_set_add ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_set_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-add.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.3.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -300,7 +304,7 @@ hb_set_add (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.ht
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -310,7 +314,7 @@ hb_set_add_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first</code></em>,
                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> last</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-add-range.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.4.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -324,7 +328,7 @@ hb_set_add_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -332,7 +336,7 @@ hb_set_add_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 hb_set_allocation_successful (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-allocation-successful.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.5.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -346,7 +350,11 @@ hb_set_allocation_successful (<em class="parameter"><code>const <a class="link"
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.12.8.5.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -354,7 +362,7 @@ hb_set_allocation_successful (<em class="parameter"><code>const <a class="link"
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_set_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-clear.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.6.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -368,20 +376,13 @@ hb_set_clear (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-set-create"></a><h3>hb_set_create ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
 hb_set_create (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p><span class="annotation">[Xconstructor]</span></p>
-<div class="refsect3">
-<a name="hb-set-create.returns"></a><h4>Returns</h4>
-<p>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -390,7 +391,7 @@ hb_set_create (<em class="parameter"><code><span class="type">void</span></code>
 hb_set_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-del.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.8.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -404,7 +405,7 @@ hb_set_del (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.ht
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -414,7 +415,7 @@ hb_set_del_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> first</code></em>,
                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> last</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-del-range.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.9.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -428,16 +429,15 @@ hb_set_del_range (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-set-destroy"></a><h3>hb_set_destroy ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_set_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-set-destroy.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.10.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -451,7 +451,7 @@ hb_set_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-se
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -459,11 +459,11 @@ hb_set_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-se
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
 hb_set_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-get-empty.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.12.8.11.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -472,7 +472,7 @@ hb_set_get_empty (<em class="parameter"><code><span class="type">void</span></co
 hb_set_get_max (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
 <p>Finds the maximum number in the set.</p>
 <div class="refsect3">
-<a name="hb-set-get-max.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -487,10 +487,11 @@ hb_set_get_max (<em class="parameter"><code>const <a class="link" href="harfbuzz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-set-get-max.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.12.8.12.6"></a><h4>Returns</h4>
 <p> minimum of the set, or <a class="link" href="harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS" title="HB_SET_VALUE_INVALID"><code class="literal">HB_SET_VALUE_INVALID</code></a> if set is empty.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -499,7 +500,7 @@ hb_set_get_max (<em class="parameter"><code>const <a class="link" href="harfbuzz
 hb_set_get_min (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
 <p>Finds the minimum number in the set.</p>
 <div class="refsect3">
-<a name="hb-set-get-min.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -514,10 +515,11 @@ hb_set_get_min (<em class="parameter"><code>const <a class="link" href="harfbuzz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-set-get-min.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.12.8.13.6"></a><h4>Returns</h4>
 <p> minimum of the set, or <a class="link" href="harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS" title="HB_SET_VALUE_INVALID"><code class="literal">HB_SET_VALUE_INVALID</code></a> if set is empty.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -526,7 +528,7 @@ hb_set_get_min (<em class="parameter"><code>const <a class="link" href="harfbuzz
 hb_set_get_population (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
 <p>Returns the number of numbers in the set.</p>
 <div class="refsect3">
-<a name="hb-set-get-population.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -541,10 +543,11 @@ hb_set_get_population (<em class="parameter"><code>const <a class="link" href="h
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-set-get-population.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.12.8.14.6"></a><h4>Returns</h4>
 <p> set population.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -552,9 +555,8 @@ hb_set_get_population (<em class="parameter"><code>const <a class="link" href="h
 <pre class="programlisting"><span class="returnvalue">void</span> *
 hb_set_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-set-get-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.15.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -569,11 +571,11 @@ hb_set_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-set-get-user-data.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.12.8.15.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -582,7 +584,7 @@ hb_set_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz
 hb_set_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> codepoint</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-has.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.16.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -596,7 +598,11 @@ hb_set_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.12.8.16.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -605,7 +611,7 @@ hb_set_has (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-
 hb_set_intersect (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
                   <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-intersect.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.17.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -619,7 +625,7 @@ hb_set_intersect (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -627,7 +633,7 @@ hb_set_intersect (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_set_invert (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-invert.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.18.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -641,7 +647,7 @@ hb_set_invert (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-10.html#api-index-0.9.10">0.9.10</a></p>
+<p class="since">Since 0.9.10</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -649,7 +655,7 @@ hb_set_invert (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 hb_set_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-is-empty.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.19.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -663,7 +669,11 @@ hb_set_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuz
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.12.8.19.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -672,7 +682,7 @@ hb_set_is_empty (<em class="parameter"><code>const <a class="link" href="harfbuz
 hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
                  <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-is-equal.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.20.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -686,7 +696,11 @@ hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuz
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.12.8.20.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -695,7 +709,7 @@ hb_set_is_equal (<em class="parameter"><code>const <a class="link" href="harfbuz
 hb_set_next (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *codepoint</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-next.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.21.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -717,10 +731,11 @@ hb_set_next (<em class="parameter"><code>const <a class="link" href="harfbuzz-hb
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-set-next.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.12.8.21.5"></a><h4>Returns</h4>
 <p> whether there was a next value.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -734,7 +749,7 @@ hb_set_next_range (<em class="parameter"><code>const <a class="link" href="harfb
 are greater than current value of <em class="parameter"><code>last</code></em>
 .</p>
 <div class="refsect3">
-<a name="hb-set-next-range.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.22.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -761,19 +776,19 @@ are greater than current value of <em class="parameter"><code>last</code></em>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-set-next-range.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.12.8.22.6"></a><h4>Returns</h4>
 <p> whether there was a next range.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-set-reference"></a><h3>hb_set_reference ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="returnvalue">hb_set_t</span></a> *
 hb_set_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-set-reference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.23.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -788,11 +803,11 @@ hb_set_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-set-reference.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.12.8.23.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -801,7 +816,7 @@ hb_set_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-
 hb_set_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
             <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-set.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.24.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -815,7 +830,7 @@ hb_set_set (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.ht
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -826,9 +841,8 @@ hb_set_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz
                       <em class="parameter"><code><span class="type">void</span> *data</code></em>,
                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-set-set-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.25.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -850,7 +864,11 @@ hb_set_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.12.8.25.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -859,7 +877,7 @@ hb_set_set_user_data (<em class="parameter"><code><a class="link" href="harfbuzz
 hb_set_subtract (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
                  <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-subtract.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.26.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -873,7 +891,7 @@ hb_set_subtract (<em class="parameter"><code><a class="link" href="harfbuzz-hb-s
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -882,7 +900,7 @@ hb_set_subtract (<em class="parameter"><code><a class="link" href="harfbuzz-hb-s
 hb_set_symmetric_difference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
                              <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-symmetric-difference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.27.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -896,7 +914,7 @@ hb_set_symmetric_difference (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -905,7 +923,7 @@ hb_set_symmetric_difference (<em class="parameter"><code><a class="link" href="h
 hb_set_union (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *set</code></em>,
               <em class="parameter"><code>const <a class="link" href="harfbuzz-hb-set.html#hb-set-t"><span class="type">hb_set_t</span></a> *other</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-set-union.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.12.8.28.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -919,18 +937,12 @@ hb_set_union (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-set.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="HB-SET-VALUE-INVALID:CAPS"></a><h3>HB_SET_VALUE_INVALID</h3>
-<pre class="programlisting">#define HB_SET_VALUE_INVALID ((hb_codepoint_t) -1)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="hb-set-t"></a><h3>hb_set_t</h3>
 <pre class="programlisting">typedef struct hb_set_t hb_set_t;
 </pre>
@@ -938,6 +950,7 @@ hb_set_union (<em class="parameter"><code><a class="link" href="harfbuzz-hb-set.
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index aee3168..ded5353 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-shape-plan: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-shape-plan</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-ot-shape.html" title="hb-ot-shape">
 <link rel="next" href="harfbuzz-hb-glib.html" title="hb-glib">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-shape-plan.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-shape-plan.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-hb-shape-plan.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-shape-plan.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">╰──</span> hb_shape_plan_t
 </pre>
 </div>
@@ -146,35 +146,6 @@ hb_shape_plan_create (<em class="parameter"><code><a class="link" href="harfbuzz
                       <em class="parameter"><code>const <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *user_features</code></em>,
                       <em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
                       <em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
-<p><span class="annotation">[Xconstructor]</span></p>
-<div class="refsect3">
-<a name="hb-shape-plan-create.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>user_features</p></td>
-<td class="parameter_description"><p>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=num_user_features]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>shaper_list</p></td>
-<td class="parameter_description"><p>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="hb-shape-plan-create.returns"></a><h4>Returns</h4>
-<p>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -186,7 +157,7 @@ hb_shape_plan_create_cached (<em class="parameter"><code><a class="link" href="h
                              <em class="parameter"><code>unsigned <span class="type">int</span> num_user_features</code></em>,
                              <em class="parameter"><code>const <span class="type">char</span> * const *shaper_list</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-shape-plan-create-cached.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.18.8.3.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -208,20 +179,19 @@ hb_shape_plan_create_cached (<em class="parameter"><code><a class="link" href="h
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-shape-plan-create-cached.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.18.8.3.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-shape-plan-destroy"></a><h3>hb_shape_plan_destroy ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_shape_plan_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-shape-plan-destroy.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.18.8.4.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -235,7 +205,7 @@ hb_shape_plan_destroy (<em class="parameter"><code><a class="link" href="harfbuz
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -247,7 +217,7 @@ hb_shape_plan_execute (<em class="parameter"><code><a class="link" href="harfbuz
                        <em class="parameter"><code>const <a class="link" href="harfbuzz-Shaping.html#hb-feature-t"><span class="type">hb_feature_t</span></a> *features</code></em>,
                        <em class="parameter"><code>unsigned <span class="type">int</span> num_features</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-shape-plan-execute.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.18.8.5.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -278,7 +248,11 @@ hb_shape_plan_execute (<em class="parameter"><code><a class="link" href="harfbuz
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.18.8.5.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -286,11 +260,11 @@ hb_shape_plan_execute (<em class="parameter"><code><a class="link" href="harfbuz
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
 hb_shape_plan_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <div class="refsect3">
-<a name="hb-shape-plan-get-empty.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.18.8.6.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -298,7 +272,7 @@ hb_shape_plan_get_empty (<em class="parameter"><code><span class="type">void</sp
 <pre class="programlisting">const <span class="returnvalue">char</span> *
 hb_shape_plan_get_shaper (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-shape-plan-get-shaper.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.18.8.7.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -313,11 +287,11 @@ hb_shape_plan_get_shaper (<em class="parameter"><code><a class="link" href="harf
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-shape-plan-get-shaper.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.18.8.7.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -325,9 +299,8 @@ hb_shape_plan_get_shaper (<em class="parameter"><code><a class="link" href="harf
 <pre class="programlisting"><span class="returnvalue">void</span> *
 hb_shape_plan_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-shape-plan-get-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.18.8.8.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -342,20 +315,19 @@ hb_shape_plan_get_user_data (<em class="parameter"><code><a class="link" href="h
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-shape-plan-get-user-data.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.18.8.8.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-shape-plan-reference"></a><h3>hb_shape_plan_reference ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="returnvalue">hb_shape_plan_t</span></a> *
 hb_shape_plan_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t"><span class="type">hb_shape_plan_t</span></a> *shape_plan</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-shape-plan-reference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.18.8.9.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -370,11 +342,11 @@ hb_shape_plan_reference (<em class="parameter"><code><a class="link" href="harfb
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-shape-plan-reference.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.18.8.9.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<p class="since">Since 0.9.7</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -385,9 +357,8 @@ hb_shape_plan_set_user_data (<em class="parameter"><code><a class="link" href="h
                              <em class="parameter"><code><span class="type">void</span> *data</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-shape-plan-set-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.18.8.10.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -401,7 +372,11 @@ hb_shape_plan_set_user_data (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-7.html#api-index-0.9.7">0.9.7</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.18.8.10.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.7</p>
 </div>
 </div>
 <div class="refsect1">
@@ -414,6 +389,7 @@ hb_shape_plan_set_user_data (<em class="parameter"><code><a class="link" href="h
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ecc82c5..2525865 100644 (file)
@@ -2,20 +2,20 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-unicode: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-unicode</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-common.html" title="hb-common">
 <link rel="next" href="harfbuzz-Buffers.html" title="Buffers">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-unicode.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-unicode.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
                   <a href="#harfbuzz-hb-unicode.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 </colgroup>
 <tbody>
 <tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="harfbuzz-hb-unicode.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS" title="HB_UNICODE_MAX_DECOMPOSITION_LEN">HB_UNICODE_MAX_DECOMPOSITION_LEN</a></td>
+</tr>
+<tr>
 <td class="function_type">
 <a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t" title="enum hb_unicode_combining_class_t"><span class="returnvalue">hb_unicode_combining_class_t</span></a>
 </td>
 </colgroup>
 <tbody>
 <tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="harfbuzz-hb-unicode.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS" title="HB_UNICODE_MAX_DECOMPOSITION_LEN">HB_UNICODE_MAX_DECOMPOSITION_LEN</a></td>
-</tr>
-<tr>
 <td class="datatype_keyword">enum</td>
 <td class="function_name"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t" title="enum hb_unicode_combining_class_t">hb_unicode_combining_class_t</a></td>
 </tr>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb-unicode.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+<pre class="screen">    GBoxed
     <span class="lineart">╰──</span> hb_unicode_funcs_t
-    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+    GEnum
     <span class="lineart">├──</span> hb_unicode_combining_class_t
     <span class="lineart">╰──</span> hb_unicode_general_category_t
 </pre>
 <div class="refsect1">
 <a name="harfbuzz-hb-unicode.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
+<a name="HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS"></a><h3>HB_UNICODE_MAX_DECOMPOSITION_LEN</h3>
+<pre class="programlisting">#define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
 <a name="hb-unicode-combining-class"></a><h3>hb_unicode_combining_class ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t" title="enum hb_unicode_combining_class_t"><span class="returnvalue">hb_unicode_combining_class_t</span></a>
 hb_unicode_combining_class (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -362,7 +368,7 @@ hb_unicode_compose (<em class="parameter"><code><a class="link" href="harfbuzz-h
                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> b</code></em>,
                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *ab</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-compose.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.5.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -383,7 +389,11 @@ hb_unicode_compose (<em class="parameter"><code><a class="link" href="harfbuzz-h
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.5.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -404,7 +414,7 @@ hb_unicode_decompose (<em class="parameter"><code><a class="link" href="harfbuzz
                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *a</code></em>,
                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *b</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-decompose.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.7.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -430,7 +440,11 @@ hb_unicode_decompose (<em class="parameter"><code><a class="link" href="harfbuzz
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.7.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -440,7 +454,7 @@ hb_unicode_decompose_compatibility (<em class="parameter"><code><a class="link"
                                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> u</code></em>,
                                     <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> *decomposed</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-decompose-compatibility.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.8.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -461,7 +475,11 @@ hb_unicode_decompose_compatibility (<em class="parameter"><code><a class="link"
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.8.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -479,44 +497,21 @@ hb_unicode_decompose_compatibility (<em class="parameter"><code><a class="link"
 <pre class="programlisting">unsigned <span class="returnvalue">int</span>
 hb_unicode_eastasian_width (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
                             <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-unicode-funcs-create"></a><h3>hb_unicode_funcs_create ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
 hb_unicode_funcs_create (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *parent</code></em>);</pre>
-<p><span class="annotation">[Xconstructor]</span></p>
-<div class="refsect3">
-<a name="hb-unicode-funcs-create.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>parent</p></td>
-<td class="parameter_description"><p>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="hb-unicode-funcs-create.returns"></a><h4>Returns</h4>
-<p>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-unicode-funcs-destroy"></a><h3>hb_unicode_funcs_destroy ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_unicode_funcs_destroy (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-unicode-funcs-destroy.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.12.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -530,7 +525,7 @@ hb_unicode_funcs_destroy (<em class="parameter"><code><a class="link" href="harf
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -544,11 +539,11 @@ hb_unicode_funcs_get_default (<em class="parameter"><code><span class="type">voi
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
 hb_unicode_funcs_get_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-get-empty.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.4.8.14.4"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -556,7 +551,7 @@ hb_unicode_funcs_get_empty (<em class="parameter"><code><span class="type">void<
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
 hb_unicode_funcs_get_parent (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-get-parent.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.15.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -570,7 +565,11 @@ hb_unicode_funcs_get_parent (<em class="parameter"><code><a class="link" href="h
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.15.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -578,9 +577,8 @@ hb_unicode_funcs_get_parent (<em class="parameter"><code><a class="link" href="h
 <pre class="programlisting"><span class="returnvalue">void</span> *
 hb_unicode_funcs_get_user_data (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t"><span class="type">hb_user_data_key_t</span></a> *key</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-unicode-funcs-get-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.16.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -595,11 +593,11 @@ hb_unicode_funcs_get_user_data (<em class="parameter"><code><a class="link" href
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-unicode-funcs-get-user-data.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.4.8.16.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -607,7 +605,7 @@ hb_unicode_funcs_get_user_data (<em class="parameter"><code><a class="link" href
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="returnvalue">hb_bool_t</span></a>
 hb_unicode_funcs_is_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-is-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.17.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -621,7 +619,11 @@ hb_unicode_funcs_is_immutable (<em class="parameter"><code><a class="link" href=
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.17.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -629,7 +631,7 @@ hb_unicode_funcs_is_immutable (<em class="parameter"><code><a class="link" href=
 <pre class="programlisting"><span class="returnvalue">void</span>
 hb_unicode_funcs_make_immutable (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-make-immutable.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.18.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -643,16 +645,15 @@ hb_unicode_funcs_make_immutable (<em class="parameter"><code><a class="link" hre
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="hb-unicode-funcs-reference"></a><h3>hb_unicode_funcs_reference ()</h3>
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="returnvalue">hb_unicode_funcs_t</span></a> *
 hb_unicode_funcs_reference (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-unicode-funcs-reference.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.19.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -667,11 +668,11 @@ hb_unicode_funcs_reference (<em class="parameter"><code><a class="link" href="ha
 </table></div>
 </div>
 <div class="refsect3">
-<a name="hb-unicode-funcs-reference.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.4.8.19.5"></a><h4>Returns</h4>
 <p>. </p>
 <p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -683,7 +684,7 @@ hb_unicode_funcs_set_combining_class_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-combining-class-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.20.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -704,7 +705,7 @@ hb_unicode_funcs_set_combining_class_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -715,7 +716,7 @@ hb_unicode_funcs_set_compose_func (<em class="parameter"><code><a class="link" h
                                    <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-compose-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.21.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -736,7 +737,7 @@ hb_unicode_funcs_set_compose_func (<em class="parameter"><code><a class="link" h
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -748,7 +749,7 @@ hb_unicode_funcs_set_decompose_compatibility_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-decompose-compatibility-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.22.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -769,7 +770,7 @@ hb_unicode_funcs_set_decompose_compatibility_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -780,7 +781,7 @@ hb_unicode_funcs_set_decompose_func (<em class="parameter"><code><a class="link"
                                      <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                      <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-decompose-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.23.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -801,7 +802,7 @@ hb_unicode_funcs_set_decompose_func (<em class="parameter"><code><a class="link"
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -813,7 +814,7 @@ hb_unicode_funcs_set_eastasian_width_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-eastasian-width-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.24.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -834,7 +835,7 @@ hb_unicode_funcs_set_eastasian_width_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -846,7 +847,7 @@ hb_unicode_funcs_set_general_category_func
                                 <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-general-category-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.25.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -867,7 +868,7 @@ hb_unicode_funcs_set_general_category_func
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -878,7 +879,7 @@ hb_unicode_funcs_set_mirroring_func (<em class="parameter"><code><a class="link"
                                      <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                      <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-mirroring-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.26.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -899,7 +900,7 @@ hb_unicode_funcs_set_mirroring_func (<em class="parameter"><code><a class="link"
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -910,7 +911,7 @@ hb_unicode_funcs_set_script_func (<em class="parameter"><code><a class="link" hr
                                   <em class="parameter"><code><span class="type">void</span> *user_data</code></em>,
                                   <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>);</pre>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-script-func.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.27.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -931,7 +932,7 @@ hb_unicode_funcs_set_script_func (<em class="parameter"><code><a class="link" hr
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -942,9 +943,8 @@ hb_unicode_funcs_set_user_data (<em class="parameter"><code><a class="link" href
                                 <em class="parameter"><code><span class="type">void</span> *data</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-destroy-func-t" title="hb_destroy_func_t ()"><span class="type">hb_destroy_func_t</span></a> destroy</code></em>,
                                 <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-bool-t" title="hb_bool_t"><span class="type">hb_bool_t</span></a> replace</code></em>);</pre>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
 <div class="refsect3">
-<a name="hb-unicode-funcs-set-user-data.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.4.8.28.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -958,7 +958,11 @@ hb_unicode_funcs_set_user_data (<em class="parameter"><code><a class="link" href
 </tr></tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.4.8.28.5"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -966,7 +970,7 @@ hb_unicode_funcs_set_user_data (<em class="parameter"><code><a class="link" href
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category-t" title="enum hb_unicode_general_category_t"><span class="returnvalue">hb_unicode_general_category_t</span></a>
 hb_unicode_general_category (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
                              <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -982,7 +986,7 @@ hb_unicode_general_category (<em class="parameter"><code><a class="link" href="h
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="returnvalue">hb_codepoint_t</span></a>
 hb_unicode_mirroring (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
                       <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -998,7 +1002,7 @@ hb_unicode_mirroring (<em class="parameter"><code><a class="link" href="harfbuzz
 <pre class="programlisting"><a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t"><span class="returnvalue">hb_script_t</span></a>
 hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"><span class="type">hb_unicode_funcs_t</span></a> *ufuncs</code></em>,
                    <em class="parameter"><code><a class="link" href="harfbuzz-hb-common.html#hb-codepoint-t" title="hb_codepoint_t"><span class="type">hb_codepoint_t</span></a> unicode</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1012,15 +1016,9 @@ hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 <div class="refsect1">
 <a name="harfbuzz-hb-unicode.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS"></a><h3>HB_UNICODE_MAX_DECOMPOSITION_LEN</h3>
-<pre class="programlisting">#define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
 <a name="hb-unicode-combining-class-t"></a><h3>enum hb_unicode_combining_class_t</h3>
 <div class="refsect3">
-<a name="hb-unicode-combining-class-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.4.9.2.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1327,7 +1325,7 @@ hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 <div class="refsect2">
 <a name="hb-unicode-general-category-t"></a><h3>enum hb_unicode_general_category_t</h3>
 <div class="refsect3">
-<a name="hb-unicode-general-category-t.members"></a><h4>Members</h4>
+<a name="id-1.3.3.4.9.4.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -1492,6 +1490,7 @@ hb_unicode_script (<em class="parameter"><code><a class="link" href="harfbuzz-hb
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 2096fbe..460ed2c 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-uniscribe: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-uniscribe</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-hb-graphite2.html" title="hb-graphite2">
 <link rel="next" href="harfbuzz-hb-coretext.html" title="hb-coretext">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-uniscribe.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-uniscribe.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-uniscribe.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-uniscribe.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-uniscribe.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
@@ -80,6 +86,7 @@ hb_uniscribe_font_get_logfontw (<em class="parameter"><code><a class="link" href
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 28a9346..5a1569a 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb-version: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb-version</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="harfbuzz-Shaping.html" title="Shaping">
 <link rel="next" href="harfbuzz-hb-deprecated.html" title="hb-deprecated">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb-version.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-version.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb-version.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </table></div>
 </div>
 <div class="refsect1">
+<a name="harfbuzz-hb-version.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb-version.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
 hb_version (<em class="parameter"><code>unsigned <span class="type">int</span> *major</code></em>,
             <em class="parameter"><code>unsigned <span class="type">int</span> *minor</code></em>,
             <em class="parameter"><code>unsigned <span class="type">int</span> *micro</code></em>);</pre>
-<p>Returns library version as three integer components.</p>
 <div class="refsect3">
-<a name="hb-version.parameters"></a><h4>Parameters</h4>
+<a name="id-1.3.3.10.7.3.4"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -142,7 +147,12 @@ hb_version (<em class="parameter"><code>unsigned <span class="type">int</span> *
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.10.7.3.5"></a><h4>Returns</h4>
+<p>library version as three integer components.</p>
+<p></p>
+</div>
+<p class="since">Since 0.9.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -151,7 +161,11 @@ hb_version (<em class="parameter"><code>unsigned <span class="type">int</span> *
 hb_version_atleast (<em class="parameter"><code>unsigned <span class="type">int</span> major</code></em>,
                     <em class="parameter"><code>unsigned <span class="type">int</span> minor</code></em>,
                     <em class="parameter"><code>unsigned <span class="type">int</span> micro</code></em>);</pre>
-<p class="since">Since: <a class="link" href="api-index-0-9-30.html#api-index-0.9.30">0.9.30</a></p>
+<div class="refsect3">
+<a name="id-1.3.3.10.7.4.4"></a><h4>Returns</h4>
+<p></p>
+</div>
+<p class="since">Since 0.9.30</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -160,10 +174,11 @@ hb_version_atleast (<em class="parameter"><code>unsigned <span class="type">int<
 hb_version_string (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 <p>Returns library version as a string with three components.</p>
 <div class="refsect3">
-<a name="hb-version-string.returns"></a><h4>Returns</h4>
+<a name="id-1.3.3.10.7.5.5"></a><h4>Returns</h4>
 <p> library version string.</p>
+<p></p>
 </div>
-<p class="since">Since: <a class="link" href="api-index-0-9-2.html#api-index-0.9.2">0.9.2</a></p>
+<p class="since">Since 0.9.2</p>
 </div>
 </div>
 <div class="refsect1">
@@ -176,7 +191,7 @@ hb_version_string (<em class="parameter"><code><span class="type">void</span></c
 <hr>
 <div class="refsect2">
 <a name="HB-VERSION-MICRO:CAPS"></a><h3>HB_VERSION_MICRO</h3>
-<pre class="programlisting">#define HB_VERSION_MICRO 6
+<pre class="programlisting">#define HB_VERSION_MICRO 7
 </pre>
 </div>
 <hr>
@@ -188,12 +203,13 @@ hb_version_string (<em class="parameter"><code><span class="type">void</span></c
 <hr>
 <div class="refsect2">
 <a name="HB-VERSION-STRING:CAPS"></a><h3>HB_VERSION_STRING</h3>
-<pre class="programlisting">#define HB_VERSION_STRING "1.2.6"
+<pre class="programlisting">#define HB_VERSION_STRING "1.2.7"
 </pre>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index ca615fe..497a7de 100644 (file)
@@ -2,20 +2,21 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>hb: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: hb</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="ch07.html" title="Harfbuzz API">
 <link rel="prev" href="ch07.html" title="Harfbuzz API">
 <link rel="next" href="harfbuzz-hb-common.html" title="hb-common">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#harfbuzz-hb.description" class="shortcut">Description</a></span>
+<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb.description" class="shortcut">Description</a></span><span id="nav_hierarchy"> <span class="dim">|</span> 
+                  <a href="#harfbuzz-hb.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch07.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
+<a name="harfbuzz-hb.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">
+</pre>
+</div>
+<div class="refsect1">
 <a name="harfbuzz-hb.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb.functions_details"></a><h2>Functions</h2>
-<p></p>
 </div>
 <div class="refsect1">
 <a name="harfbuzz-hb.other_details"></a><h2>Types and Values</h2>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 15ffc29..494893a 100644 (file)
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
 <book xmlns="http://www.devhelp.net/book" title="HarfBuzz Manual" link="index.html" author="" name="harfbuzz" version="2" language="c">
   <chapters>
     <sub name="User's manual" link="pt01.html">
     <keyword type="macro" name="HB_DIRECTION_IS_HORIZONTAL()" link="harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS"/>
     <keyword type="macro" name="HB_DIRECTION_IS_VALID()" link="harfbuzz-hb-common.html#HB-DIRECTION-IS-VALID:CAPS"/>
     <keyword type="macro" name="HB_DIRECTION_IS_VERTICAL()" link="harfbuzz-hb-common.html#HB-DIRECTION-IS-VERTICAL:CAPS"/>
+    <keyword type="macro" name="HB_LANGUAGE_INVALID" link="harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS"/>
     <keyword type="typedef" name="hb_bool_t" link="harfbuzz-hb-common.html#hb-bool-t"/>
     <keyword type="typedef" name="hb_codepoint_t" link="harfbuzz-hb-common.html#hb-codepoint-t"/>
     <keyword type="enum" name="enum hb_direction_t" link="harfbuzz-hb-common.html#hb-direction-t"/>
     <keyword type="macro" name="HB_TAG_NONE" link="harfbuzz-hb-common.html#HB-TAG-NONE:CAPS"/>
     <keyword type="macro" name="HB_TAG_MAX" link="harfbuzz-hb-common.html#HB-TAG-MAX:CAPS"/>
     <keyword type="macro" name="HB_TAG_MAX_SIGNED" link="harfbuzz-hb-common.html#HB-TAG-MAX-SIGNED:CAPS"/>
-    <keyword type="macro" name="HB_LANGUAGE_INVALID" link="harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS"/>
+    <keyword type="macro" name="HB_UNICODE_MAX_DECOMPOSITION_LEN" link="harfbuzz-hb-unicode.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS"/>
     <keyword type="function" name="hb_unicode_combining_class ()" link="harfbuzz-hb-unicode.html#hb-unicode-combining-class" since="0.9.2"/>
     <keyword type="function" name="hb_unicode_combining_class_func_t ()" link="harfbuzz-hb-unicode.html#hb-unicode-combining-class-func-t"/>
     <keyword type="function" name="hb_unicode_compose ()" link="harfbuzz-hb-unicode.html#hb-unicode-compose" since="0.9.2"/>
     <keyword type="function" name="hb_unicode_decompose_compatibility ()" link="harfbuzz-hb-unicode.html#hb-unicode-decompose-compatibility" since="0.9.2"/>
     <keyword type="function" name="hb_unicode_decompose_func_t ()" link="harfbuzz-hb-unicode.html#hb-unicode-decompose-func-t"/>
     <keyword type="function" name="hb_unicode_eastasian_width ()" link="harfbuzz-hb-unicode.html#hb-unicode-eastasian-width" since="0.9.2"/>
-    <keyword type="function" name="hb_unicode_funcs_create ()" link="harfbuzz-hb-unicode.html#hb-unicode-funcs-create" since="0.9.2"/>
+    <keyword type="function" name="hb_unicode_funcs_create ()" link="harfbuzz-hb-unicode.html#hb-unicode-funcs-create"/>
     <keyword type="function" name="hb_unicode_funcs_destroy ()" link="harfbuzz-hb-unicode.html#hb-unicode-funcs-destroy" since="0.9.2"/>
     <keyword type="function" name="hb_unicode_funcs_get_default ()" link="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-default"/>
     <keyword type="function" name="hb_unicode_funcs_get_empty ()" link="harfbuzz-hb-unicode.html#hb-unicode-funcs-get-empty" since="0.9.2"/>
     <keyword type="function" name="hb_unicode_mirroring_func_t ()" link="harfbuzz-hb-unicode.html#hb-unicode-mirroring-func-t"/>
     <keyword type="function" name="hb_unicode_script ()" link="harfbuzz-hb-unicode.html#hb-unicode-script" since="0.9.2"/>
     <keyword type="function" name="hb_unicode_script_func_t ()" link="harfbuzz-hb-unicode.html#hb-unicode-script-func-t"/>
-    <keyword type="macro" name="HB_UNICODE_MAX_DECOMPOSITION_LEN" link="harfbuzz-hb-unicode.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS"/>
     <keyword type="enum" name="enum hb_unicode_combining_class_t" link="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t"/>
     <keyword type="typedef" name="hb_unicode_funcs_t" link="harfbuzz-hb-unicode.html#hb-unicode-funcs-t"/>
     <keyword type="enum" name="enum hb_unicode_general_category_t" link="harfbuzz-hb-unicode.html#hb-unicode-general-category-t"/>
-    <keyword type="function" name="hb_buffer_create ()" link="harfbuzz-Buffers.html#hb-buffer-create" since="0.9.2"/>
+    <keyword type="function" name="hb_buffer_create ()" link="harfbuzz-Buffers.html#hb-buffer-create"/>
     <keyword type="function" name="hb_buffer_reference ()" link="harfbuzz-Buffers.html#hb-buffer-reference" since="0.9.2"/>
     <keyword type="function" name="hb_buffer_get_empty ()" link="harfbuzz-Buffers.html#hb-buffer-get-empty" since="0.9.2"/>
     <keyword type="function" name="hb_buffer_destroy ()" link="harfbuzz-Buffers.html#hb-buffer-destroy" since="0.9.2"/>
     <keyword type="function" name="hb_blob_set_user_data ()" link="harfbuzz-hb-blob.html#hb-blob-set-user-data" since="0.9.2"/>
     <keyword type="typedef" name="hb_blob_t" link="harfbuzz-hb-blob.html#hb-blob-t"/>
     <keyword type="enum" name="enum hb_memory_mode_t" link="harfbuzz-hb-blob.html#hb-memory-mode-t"/>
-    <keyword type="function" name="hb_face_create ()" link="harfbuzz-hb-face.html#hb-face-create" since="0.9.2"/>
+    <keyword type="function" name="hb_face_create ()" link="harfbuzz-hb-face.html#hb-face-create"/>
     <keyword type="function" name="hb_face_create_for_tables ()" link="harfbuzz-hb-face.html#hb-face-create-for-tables" since="0.9.2"/>
     <keyword type="function" name="hb_face_destroy ()" link="harfbuzz-hb-face.html#hb-face-destroy" since="0.9.2"/>
     <keyword type="function" name="hb_face_get_empty ()" link="harfbuzz-hb-face.html#hb-face-get-empty" since="0.9.2"/>
     <keyword type="function" name="hb_face_set_user_data ()" link="harfbuzz-hb-face.html#hb-face-set-user-data" since="0.9.2"/>
     <keyword type="typedef" name="hb_face_t" link="harfbuzz-hb-face.html#hb-face-t"/>
     <keyword type="function" name="hb_font_add_glyph_origin_for_direction ()" link="harfbuzz-hb-font.html#hb-font-add-glyph-origin-for-direction" since="0.9.2"/>
-    <keyword type="function" name="hb_font_create ()" link="harfbuzz-hb-font.html#hb-font-create" since="0.9.2"/>
+    <keyword type="function" name="hb_font_create ()" link="harfbuzz-hb-font.html#hb-font-create"/>
     <keyword type="function" name="hb_font_create_sub_font ()" link="harfbuzz-hb-font.html#hb-font-create-sub-font" since="0.9.2"/>
     <keyword type="function" name="hb_font_destroy ()" link="harfbuzz-hb-font.html#hb-font-destroy" since="0.9.2"/>
-    <keyword type="function" name="hb_font_funcs_create ()" link="harfbuzz-hb-font.html#hb-font-funcs-create" since="0.9.2"/>
+    <keyword type="function" name="hb_font_funcs_create ()" link="harfbuzz-hb-font.html#hb-font-funcs-create"/>
     <keyword type="function" name="hb_font_funcs_destroy ()" link="harfbuzz-hb-font.html#hb-font-funcs-destroy" since="0.9.2"/>
     <keyword type="function" name="hb_font_funcs_get_empty ()" link="harfbuzz-hb-font.html#hb-font-funcs-get-empty" since="0.9.2"/>
     <keyword type="function" name="hb_font_funcs_get_user_data ()" link="harfbuzz-hb-font.html#hb-font-funcs-get-user-data" since="0.9.2"/>
     <keyword type="macro" name="HB_BUFFER_FLAGS_DEFAULT" link="harfbuzz-hb-deprecated.html#HB-BUFFER-FLAGS-DEFAULT:CAPS" deprecated=""/>
     <keyword type="macro" name="HB_BUFFER_SERIALIZE_FLAGS_DEFAULT" link="harfbuzz-hb-deprecated.html#HB-BUFFER-SERIALIZE-FLAGS-DEFAULT:CAPS" deprecated=""/>
     <keyword type="macro" name="HB_SCRIPT_CANADIAN_ABORIGINAL" link="harfbuzz-hb-deprecated.html#HB-SCRIPT-CANADIAN-ABORIGINAL:CAPS" deprecated=""/>
+    <keyword type="macro" name="HB_SET_VALUE_INVALID" link="harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS"/>
     <keyword type="function" name="hb_set_add ()" link="harfbuzz-hb-set.html#hb-set-add" since="0.9.2"/>
     <keyword type="function" name="hb_set_add_range ()" link="harfbuzz-hb-set.html#hb-set-add-range" since="0.9.7"/>
     <keyword type="function" name="hb_set_allocation_successful ()" link="harfbuzz-hb-set.html#hb-set-allocation-successful" since="0.9.2"/>
     <keyword type="function" name="hb_set_clear ()" link="harfbuzz-hb-set.html#hb-set-clear" since="0.9.2"/>
-    <keyword type="function" name="hb_set_create ()" link="harfbuzz-hb-set.html#hb-set-create" since="0.9.2"/>
+    <keyword type="function" name="hb_set_create ()" link="harfbuzz-hb-set.html#hb-set-create"/>
     <keyword type="function" name="hb_set_del ()" link="harfbuzz-hb-set.html#hb-set-del" since="0.9.2"/>
     <keyword type="function" name="hb_set_del_range ()" link="harfbuzz-hb-set.html#hb-set-del-range" since="0.9.7"/>
     <keyword type="function" name="hb_set_destroy ()" link="harfbuzz-hb-set.html#hb-set-destroy" since="0.9.2"/>
     <keyword type="function" name="hb_set_subtract ()" link="harfbuzz-hb-set.html#hb-set-subtract" since="0.9.2"/>
     <keyword type="function" name="hb_set_symmetric_difference ()" link="harfbuzz-hb-set.html#hb-set-symmetric-difference" since="0.9.2"/>
     <keyword type="function" name="hb_set_union ()" link="harfbuzz-hb-set.html#hb-set-union" since="0.9.2"/>
-    <keyword type="macro" name="HB_SET_VALUE_INVALID" link="harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS"/>
     <keyword type="typedef" name="hb_set_t" link="harfbuzz-hb-set.html#hb-set-t"/>
     <keyword type="function" name="hb_ot_layout_collect_lookups ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-collect-lookups" since="0.9.8"/>
     <keyword type="function" name="hb_ot_layout_feature_get_lookups ()" link="harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-lookups" since="0.9.7"/>
     <keyword type="macro" name="HB_OT_TAG_DEFAULT_SCRIPT" link="harfbuzz-hb-ot-tag.html#HB-OT-TAG-DEFAULT-SCRIPT:CAPS"/>
     <keyword type="function" name="hb_ot_font_set_funcs ()" link="harfbuzz-hb-ot-font.html#hb-ot-font-set-funcs" since="0.9.28"/>
     <keyword type="function" name="hb_ot_shape_glyphs_closure ()" link="harfbuzz-hb-ot-shape.html#hb-ot-shape-glyphs-closure" since="0.9.2"/>
-    <keyword type="function" name="hb_shape_plan_create ()" link="harfbuzz-hb-shape-plan.html#hb-shape-plan-create" since="0.9.7"/>
+    <keyword type="function" name="hb_shape_plan_create ()" link="harfbuzz-hb-shape-plan.html#hb-shape-plan-create"/>
     <keyword type="function" name="hb_shape_plan_create_cached ()" link="harfbuzz-hb-shape-plan.html#hb-shape-plan-create-cached" since="0.9.7"/>
     <keyword type="function" name="hb_shape_plan_destroy ()" link="harfbuzz-hb-shape-plan.html#hb-shape-plan-destroy" since="0.9.7"/>
     <keyword type="function" name="hb_shape_plan_execute ()" link="harfbuzz-hb-shape-plan.html#hb-shape-plan-execute" since="0.9.7"/>
     <keyword type="function" name="hb_coretext_font_get_ct_font ()" link="harfbuzz-hb-coretext.html#hb-coretext-font-get-ct-font"/>
     <keyword type="macro" name="HB_CORETEXT_TAG_MORT" link="harfbuzz-hb-coretext.html#HB-CORETEXT-TAG-MORT:CAPS"/>
     <keyword type="macro" name="HB_CORETEXT_TAG_MORX" link="harfbuzz-hb-coretext.html#HB-CORETEXT-TAG-MORX:CAPS"/>
-    <keyword type="function" name="hb_gobject_blob_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type"/>
-    <keyword type="function" name="hb_gobject_buffer_content_type_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type"/>
-    <keyword type="function" name="hb_gobject_buffer_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type"/>
-    <keyword type="function" name="hb_gobject_buffer_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type"/>
-    <keyword type="function" name="hb_gobject_buffer_serialize_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type"/>
-    <keyword type="function" name="hb_gobject_buffer_serialize_format_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type"/>
-    <keyword type="function" name="hb_gobject_direction_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type"/>
-    <keyword type="function" name="hb_gobject_face_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-face-get-type"/>
-    <keyword type="function" name="hb_gobject_font_funcs_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type"/>
-    <keyword type="function" name="hb_gobject_font_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-font-get-type"/>
-    <keyword type="function" name="hb_gobject_memory_mode_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type"/>
-    <keyword type="function" name="hb_gobject_ot_layout_glyph_class_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type"/>
-    <keyword type="function" name="hb_gobject_script_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-script-get-type"/>
-    <keyword type="function" name="hb_gobject_shape_plan_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type"/>
-    <keyword type="function" name="hb_gobject_unicode_combining_class_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type"/>
-    <keyword type="function" name="hb_gobject_unicode_funcs_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type"/>
-    <keyword type="function" name="hb_gobject_unicode_general_category_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type"/>
-    <keyword type="function" name="hb_gobject_buffer_cluster_level_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type"/>
-    <keyword type="function" name="hb_gobject_feature_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type"/>
-    <keyword type="function" name="hb_gobject_glyph_info_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type"/>
-    <keyword type="function" name="hb_gobject_glyph_position_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type"/>
-    <keyword type="function" name="hb_gobject_segment_properties_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type"/>
-    <keyword type="function" name="hb_gobject_set_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-set-get-type"/>
-    <keyword type="function" name="hb_gobject_user_data_key_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type"/>
     <keyword type="macro" name="HB_GOBJECT_TYPE_BLOB" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS"/>
     <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS"/>
     <keyword type="macro" name="HB_GOBJECT_TYPE_BUFFER_CONTENT_TYPE" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS"/>
     <keyword type="macro" name="HB_GOBJECT_TYPE_SEGMENT_PROPERTIES" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS"/>
     <keyword type="macro" name="HB_GOBJECT_TYPE_SET" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS"/>
     <keyword type="macro" name="HB_GOBJECT_TYPE_USER_DATA_KEY" link="harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS"/>
-    <keyword type="constant" name="HB_DIRECTION_INVALID" link="harfbuzz-hb-common.html#HB-DIRECTION-INVALID:CAPS"/>
-    <keyword type="constant" name="HB_DIRECTION_LTR" link="harfbuzz-hb-common.html#HB-DIRECTION-LTR:CAPS"/>
-    <keyword type="constant" name="HB_DIRECTION_RTL" link="harfbuzz-hb-common.html#HB-DIRECTION-RTL:CAPS"/>
-    <keyword type="constant" name="HB_DIRECTION_TTB" link="harfbuzz-hb-common.html#HB-DIRECTION-TTB:CAPS"/>
-    <keyword type="constant" name="HB_DIRECTION_BTT" link="harfbuzz-hb-common.html#HB-DIRECTION-BTT:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_COMMON" link="harfbuzz-hb-common.html#HB-SCRIPT-COMMON:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_INHERITED" link="harfbuzz-hb-common.html#HB-SCRIPT-INHERITED:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_UNKNOWN" link="harfbuzz-hb-common.html#HB-SCRIPT-UNKNOWN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_ARABIC" link="harfbuzz-hb-common.html#HB-SCRIPT-ARABIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_ARMENIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-ARMENIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BENGALI" link="harfbuzz-hb-common.html#HB-SCRIPT-BENGALI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CYRILLIC" link="harfbuzz-hb-common.html#HB-SCRIPT-CYRILLIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_DEVANAGARI" link="harfbuzz-hb-common.html#HB-SCRIPT-DEVANAGARI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_GEORGIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-GEORGIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_GREEK" link="harfbuzz-hb-common.html#HB-SCRIPT-GREEK:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_GUJARATI" link="harfbuzz-hb-common.html#HB-SCRIPT-GUJARATI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_GURMUKHI" link="harfbuzz-hb-common.html#HB-SCRIPT-GURMUKHI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_HANGUL" link="harfbuzz-hb-common.html#HB-SCRIPT-HANGUL:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_HAN" link="harfbuzz-hb-common.html#HB-SCRIPT-HAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_HEBREW" link="harfbuzz-hb-common.html#HB-SCRIPT-HEBREW:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_HIRAGANA" link="harfbuzz-hb-common.html#HB-SCRIPT-HIRAGANA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_KANNADA" link="harfbuzz-hb-common.html#HB-SCRIPT-KANNADA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_KATAKANA" link="harfbuzz-hb-common.html#HB-SCRIPT-KATAKANA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LAO" link="harfbuzz-hb-common.html#HB-SCRIPT-LAO:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LATIN" link="harfbuzz-hb-common.html#HB-SCRIPT-LATIN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MALAYALAM" link="harfbuzz-hb-common.html#HB-SCRIPT-MALAYALAM:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_ORIYA" link="harfbuzz-hb-common.html#HB-SCRIPT-ORIYA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TAMIL" link="harfbuzz-hb-common.html#HB-SCRIPT-TAMIL:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TELUGU" link="harfbuzz-hb-common.html#HB-SCRIPT-TELUGU:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_THAI" link="harfbuzz-hb-common.html#HB-SCRIPT-THAI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TIBETAN" link="harfbuzz-hb-common.html#HB-SCRIPT-TIBETAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BOPOMOFO" link="harfbuzz-hb-common.html#HB-SCRIPT-BOPOMOFO:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BRAILLE" link="harfbuzz-hb-common.html#HB-SCRIPT-BRAILLE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CANADIAN_SYLLABICS" link="harfbuzz-hb-common.html#HB-SCRIPT-CANADIAN-SYLLABICS:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CHEROKEE" link="harfbuzz-hb-common.html#HB-SCRIPT-CHEROKEE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_ETHIOPIC" link="harfbuzz-hb-common.html#HB-SCRIPT-ETHIOPIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_KHMER" link="harfbuzz-hb-common.html#HB-SCRIPT-KHMER:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MONGOLIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-MONGOLIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MYANMAR" link="harfbuzz-hb-common.html#HB-SCRIPT-MYANMAR:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OGHAM" link="harfbuzz-hb-common.html#HB-SCRIPT-OGHAM:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_RUNIC" link="harfbuzz-hb-common.html#HB-SCRIPT-RUNIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SINHALA" link="harfbuzz-hb-common.html#HB-SCRIPT-SINHALA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SYRIAC" link="harfbuzz-hb-common.html#HB-SCRIPT-SYRIAC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_THAANA" link="harfbuzz-hb-common.html#HB-SCRIPT-THAANA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_YI" link="harfbuzz-hb-common.html#HB-SCRIPT-YI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_DESERET" link="harfbuzz-hb-common.html#HB-SCRIPT-DESERET:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_GOTHIC" link="harfbuzz-hb-common.html#HB-SCRIPT-GOTHIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OLD_ITALIC" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-ITALIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BUHID" link="harfbuzz-hb-common.html#HB-SCRIPT-BUHID:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_HANUNOO" link="harfbuzz-hb-common.html#HB-SCRIPT-HANUNOO:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TAGALOG" link="harfbuzz-hb-common.html#HB-SCRIPT-TAGALOG:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TAGBANWA" link="harfbuzz-hb-common.html#HB-SCRIPT-TAGBANWA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CYPRIOT" link="harfbuzz-hb-common.html#HB-SCRIPT-CYPRIOT:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LIMBU" link="harfbuzz-hb-common.html#HB-SCRIPT-LIMBU:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LINEAR_B" link="harfbuzz-hb-common.html#HB-SCRIPT-LINEAR-B:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OSMANYA" link="harfbuzz-hb-common.html#HB-SCRIPT-OSMANYA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SHAVIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-SHAVIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TAI_LE" link="harfbuzz-hb-common.html#HB-SCRIPT-TAI-LE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_UGARITIC" link="harfbuzz-hb-common.html#HB-SCRIPT-UGARITIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BUGINESE" link="harfbuzz-hb-common.html#HB-SCRIPT-BUGINESE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_COPTIC" link="harfbuzz-hb-common.html#HB-SCRIPT-COPTIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_GLAGOLITIC" link="harfbuzz-hb-common.html#HB-SCRIPT-GLAGOLITIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_KHAROSHTHI" link="harfbuzz-hb-common.html#HB-SCRIPT-KHAROSHTHI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_NEW_TAI_LUE" link="harfbuzz-hb-common.html#HB-SCRIPT-NEW-TAI-LUE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OLD_PERSIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-PERSIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SYLOTI_NAGRI" link="harfbuzz-hb-common.html#HB-SCRIPT-SYLOTI-NAGRI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TIFINAGH" link="harfbuzz-hb-common.html#HB-SCRIPT-TIFINAGH:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BALINESE" link="harfbuzz-hb-common.html#HB-SCRIPT-BALINESE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CUNEIFORM" link="harfbuzz-hb-common.html#HB-SCRIPT-CUNEIFORM:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_NKO" link="harfbuzz-hb-common.html#HB-SCRIPT-NKO:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_PHAGS_PA" link="harfbuzz-hb-common.html#HB-SCRIPT-PHAGS-PA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_PHOENICIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-PHOENICIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CARIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-CARIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CHAM" link="harfbuzz-hb-common.html#HB-SCRIPT-CHAM:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_KAYAH_LI" link="harfbuzz-hb-common.html#HB-SCRIPT-KAYAH-LI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LEPCHA" link="harfbuzz-hb-common.html#HB-SCRIPT-LEPCHA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LYCIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-LYCIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LYDIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-LYDIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OL_CHIKI" link="harfbuzz-hb-common.html#HB-SCRIPT-OL-CHIKI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_REJANG" link="harfbuzz-hb-common.html#HB-SCRIPT-REJANG:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SAURASHTRA" link="harfbuzz-hb-common.html#HB-SCRIPT-SAURASHTRA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SUNDANESE" link="harfbuzz-hb-common.html#HB-SCRIPT-SUNDANESE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_VAI" link="harfbuzz-hb-common.html#HB-SCRIPT-VAI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_AVESTAN" link="harfbuzz-hb-common.html#HB-SCRIPT-AVESTAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BAMUM" link="harfbuzz-hb-common.html#HB-SCRIPT-BAMUM:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_EGYPTIAN_HIEROGLYPHS" link="harfbuzz-hb-common.html#HB-SCRIPT-EGYPTIAN-HIEROGLYPHS:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_IMPERIAL_ARAMAIC" link="harfbuzz-hb-common.html#HB-SCRIPT-IMPERIAL-ARAMAIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_INSCRIPTIONAL_PAHLAVI" link="harfbuzz-hb-common.html#HB-SCRIPT-INSCRIPTIONAL-PAHLAVI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_INSCRIPTIONAL_PARTHIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-INSCRIPTIONAL-PARTHIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_JAVANESE" link="harfbuzz-hb-common.html#HB-SCRIPT-JAVANESE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_KAITHI" link="harfbuzz-hb-common.html#HB-SCRIPT-KAITHI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LISU" link="harfbuzz-hb-common.html#HB-SCRIPT-LISU:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MEETEI_MAYEK" link="harfbuzz-hb-common.html#HB-SCRIPT-MEETEI-MAYEK:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OLD_SOUTH_ARABIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-SOUTH-ARABIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OLD_TURKIC" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-TURKIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SAMARITAN" link="harfbuzz-hb-common.html#HB-SCRIPT-SAMARITAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TAI_THAM" link="harfbuzz-hb-common.html#HB-SCRIPT-TAI-THAM:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TAI_VIET" link="harfbuzz-hb-common.html#HB-SCRIPT-TAI-VIET:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BATAK" link="harfbuzz-hb-common.html#HB-SCRIPT-BATAK:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BRAHMI" link="harfbuzz-hb-common.html#HB-SCRIPT-BRAHMI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MANDAIC" link="harfbuzz-hb-common.html#HB-SCRIPT-MANDAIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CHAKMA" link="harfbuzz-hb-common.html#HB-SCRIPT-CHAKMA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MEROITIC_CURSIVE" link="harfbuzz-hb-common.html#HB-SCRIPT-MEROITIC-CURSIVE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MEROITIC_HIEROGLYPHS" link="harfbuzz-hb-common.html#HB-SCRIPT-MEROITIC-HIEROGLYPHS:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MIAO" link="harfbuzz-hb-common.html#HB-SCRIPT-MIAO:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SHARADA" link="harfbuzz-hb-common.html#HB-SCRIPT-SHARADA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SORA_SOMPENG" link="harfbuzz-hb-common.html#HB-SCRIPT-SORA-SOMPENG:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TAKRI" link="harfbuzz-hb-common.html#HB-SCRIPT-TAKRI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_BASSA_VAH" link="harfbuzz-hb-common.html#HB-SCRIPT-BASSA-VAH:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_CAUCASIAN_ALBANIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-CAUCASIAN-ALBANIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_DUPLOYAN" link="harfbuzz-hb-common.html#HB-SCRIPT-DUPLOYAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_ELBASAN" link="harfbuzz-hb-common.html#HB-SCRIPT-ELBASAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_GRANTHA" link="harfbuzz-hb-common.html#HB-SCRIPT-GRANTHA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_KHOJKI" link="harfbuzz-hb-common.html#HB-SCRIPT-KHOJKI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_KHUDAWADI" link="harfbuzz-hb-common.html#HB-SCRIPT-KHUDAWADI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_LINEAR_A" link="harfbuzz-hb-common.html#HB-SCRIPT-LINEAR-A:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MAHAJANI" link="harfbuzz-hb-common.html#HB-SCRIPT-MAHAJANI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MANICHAEAN" link="harfbuzz-hb-common.html#HB-SCRIPT-MANICHAEAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MENDE_KIKAKUI" link="harfbuzz-hb-common.html#HB-SCRIPT-MENDE-KIKAKUI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MODI" link="harfbuzz-hb-common.html#HB-SCRIPT-MODI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MRO" link="harfbuzz-hb-common.html#HB-SCRIPT-MRO:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_NABATAEAN" link="harfbuzz-hb-common.html#HB-SCRIPT-NABATAEAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OLD_NORTH_ARABIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-NORTH-ARABIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OLD_PERMIC" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-PERMIC:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_PAHAWH_HMONG" link="harfbuzz-hb-common.html#HB-SCRIPT-PAHAWH-HMONG:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_PALMYRENE" link="harfbuzz-hb-common.html#HB-SCRIPT-PALMYRENE:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_PAU_CIN_HAU" link="harfbuzz-hb-common.html#HB-SCRIPT-PAU-CIN-HAU:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_PSALTER_PAHLAVI" link="harfbuzz-hb-common.html#HB-SCRIPT-PSALTER-PAHLAVI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SIDDHAM" link="harfbuzz-hb-common.html#HB-SCRIPT-SIDDHAM:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_TIRHUTA" link="harfbuzz-hb-common.html#HB-SCRIPT-TIRHUTA:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_WARANG_CITI" link="harfbuzz-hb-common.html#HB-SCRIPT-WARANG-CITI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_AHOM" link="harfbuzz-hb-common.html#HB-SCRIPT-AHOM:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_ANATOLIAN_HIEROGLYPHS" link="harfbuzz-hb-common.html#HB-SCRIPT-ANATOLIAN-HIEROGLYPHS:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_HATRAN" link="harfbuzz-hb-common.html#HB-SCRIPT-HATRAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_MULTANI" link="harfbuzz-hb-common.html#HB-SCRIPT-MULTANI:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_OLD_HUNGARIAN" link="harfbuzz-hb-common.html#HB-SCRIPT-OLD-HUNGARIAN:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_SIGNWRITING" link="harfbuzz-hb-common.html#HB-SCRIPT-SIGNWRITING:CAPS"/>
-    <keyword type="constant" name="HB_SCRIPT_INVALID" link="harfbuzz-hb-common.html#HB-SCRIPT-INVALID:CAPS"/>
-    <keyword type="constant" name="_HB_SCRIPT_MAX_VALUE" link="harfbuzz-hb-common.html#HB-SCRIPT-MAX-VALUE:CAPS"/>
-    <keyword type="constant" name="_HB_SCRIPT_MAX_VALUE_SIGNED" link="harfbuzz-hb-common.html#HB-SCRIPT-MAX-VALUE-SIGNED:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_NOT_REORDERED" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-NOT-REORDERED:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_OVERLAY" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-OVERLAY:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_NUKTA" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-NUKTA:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_KANA_VOICING" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-KANA-VOICING:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_VIRAMA" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-VIRAMA:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC10" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC10:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC11" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC11:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC12" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC12:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC13" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC13:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC14" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC14:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC15" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC15:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC16" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC16:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC17" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC17:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC18" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC18:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC19" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC19:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC20" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC20:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC21" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC21:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC22" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC22:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC23" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC23:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC24" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC24:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC25" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC25:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC26" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC26:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC27" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC27:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC28" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC28:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC29" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC29:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC30" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC30:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC31" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC31:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC32" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC32:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC33" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC33:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC34" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC34:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC35" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC35:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC36" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC36:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC84" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC84:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC91" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC91:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC103" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC103:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC107" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC107:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC118" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC118:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC122" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC122:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC129" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC129:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC130" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC130:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_CCC133" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-CCC133:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-ATTACHED-BELOW-LEFT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-ATTACHED-BELOW:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-ATTACHED-ABOVE:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-ATTACHED-ABOVE-RIGHT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_BELOW_LEFT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-BELOW-LEFT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_BELOW" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-BELOW:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-BELOW-RIGHT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_LEFT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-LEFT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_RIGHT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-RIGHT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-ABOVE-LEFT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_ABOVE" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-ABOVE:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-ABOVE-RIGHT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-DOUBLE-BELOW:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-DOUBLE-ABOVE:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-IOTA-SUBSCRIPT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_COMBINING_CLASS_INVALID" link="harfbuzz-hb-unicode.html#HB-UNICODE-COMBINING-CLASS-INVALID:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_CONTROL" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-CONTROL:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_FORMAT" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-FORMAT:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-UNASSIGNED:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-PRIVATE-USE:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_SURROGATE" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-SURROGATE:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-LOWERCASE-LETTER:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-MODIFIER-LETTER:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-OTHER-LETTER:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-TITLECASE-LETTER:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-UPPERCASE-LETTER:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-SPACING-MARK:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-ENCLOSING-MARK:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-NON-SPACING-MARK:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-DECIMAL-NUMBER:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-LETTER-NUMBER:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-OTHER-NUMBER:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-CONNECT-PUNCTUATION:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-DASH-PUNCTUATION:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-CLOSE-PUNCTUATION:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-FINAL-PUNCTUATION:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-INITIAL-PUNCTUATION:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-OTHER-PUNCTUATION:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-OPEN-PUNCTUATION:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-CURRENCY-SYMBOL:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-MODIFIER-SYMBOL:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-MATH-SYMBOL:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-OTHER-SYMBOL:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-LINE-SEPARATOR:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-PARAGRAPH-SEPARATOR:CAPS"/>
-    <keyword type="constant" name="HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR" link="harfbuzz-hb-unicode.html#HB-UNICODE-GENERAL-CATEGORY-SPACE-SEPARATOR:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_CONTENT_TYPE_INVALID" link="harfbuzz-Buffers.html#HB-BUFFER-CONTENT-TYPE-INVALID:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_CONTENT_TYPE_UNICODE" link="harfbuzz-Buffers.html#HB-BUFFER-CONTENT-TYPE-UNICODE:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_CONTENT_TYPE_GLYPHS" link="harfbuzz-Buffers.html#HB-BUFFER-CONTENT-TYPE-GLYPHS:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_FLAG_DEFAULT" link="harfbuzz-Buffers.html#HB-BUFFER-FLAG-DEFAULT:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_FLAG_BOT" link="harfbuzz-Buffers.html#HB-BUFFER-FLAG-BOT:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_FLAG_EOT" link="harfbuzz-Buffers.html#HB-BUFFER-FLAG-EOT:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES" link="harfbuzz-Buffers.html#HB-BUFFER-FLAG-PRESERVE-DEFAULT-IGNORABLES:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES" link="harfbuzz-Buffers.html#HB-BUFFER-CLUSTER-LEVEL-MONOTONE-GRAPHEMES:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS" link="harfbuzz-Buffers.html#HB-BUFFER-CLUSTER-LEVEL-MONOTONE-CHARACTERS:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_CLUSTER_LEVEL_CHARACTERS" link="harfbuzz-Buffers.html#HB-BUFFER-CLUSTER-LEVEL-CHARACTERS:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_CLUSTER_LEVEL_DEFAULT" link="harfbuzz-Buffers.html#HB-BUFFER-CLUSTER-LEVEL-DEFAULT:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_SERIALIZE_FORMAT_TEXT" link="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FORMAT-TEXT:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_SERIALIZE_FORMAT_JSON" link="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FORMAT-JSON:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_SERIALIZE_FORMAT_INVALID" link="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FORMAT-INVALID:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_SERIALIZE_FLAG_DEFAULT" link="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FLAG-DEFAULT:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS" link="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FLAG-NO-CLUSTERS:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS" link="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FLAG-NO-POSITIONS:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES" link="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FLAG-NO-GLYPH-NAMES:CAPS"/>
-    <keyword type="constant" name="HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS" link="harfbuzz-Buffers.html#HB-BUFFER-SERIALIZE-FLAG-GLYPH-EXTENTS:CAPS"/>
-    <keyword type="constant" name="HB_MEMORY_MODE_DUPLICATE" link="harfbuzz-hb-blob.html#HB-MEMORY-MODE-DUPLICATE:CAPS"/>
-    <keyword type="constant" name="HB_MEMORY_MODE_READONLY" link="harfbuzz-hb-blob.html#HB-MEMORY-MODE-READONLY:CAPS"/>
-    <keyword type="constant" name="HB_MEMORY_MODE_WRITABLE" link="harfbuzz-hb-blob.html#HB-MEMORY-MODE-WRITABLE:CAPS"/>
-    <keyword type="constant" name="HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE" link="harfbuzz-hb-blob.html#HB-MEMORY-MODE-READONLY-MAY-MAKE-WRITABLE:CAPS"/>
-    <keyword type="constant" name="HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-GLYPH-CLASS-UNCLASSIFIED:CAPS"/>
-    <keyword type="constant" name="HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-GLYPH-CLASS-BASE-GLYPH:CAPS"/>
-    <keyword type="constant" name="HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-GLYPH-CLASS-LIGATURE:CAPS"/>
-    <keyword type="constant" name="HB_OT_LAYOUT_GLYPH_CLASS_MARK" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-GLYPH-CLASS-MARK:CAPS"/>
-    <keyword type="constant" name="HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT" link="harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-GLYPH-CLASS-COMPONENT:CAPS"/>
-    <keyword type="member" name="hb-glyph-info-t-struct.codepoint" link="harfbuzz-Buffers.html#hb-glyph-info-t-struct.codepoint"/>
-    <keyword type="member" name="hb-glyph-info-t-struct.mask" link="harfbuzz-Buffers.html#hb-glyph-info-t-struct.mask"/>
-    <keyword type="member" name="hb-glyph-info-t-struct.cluster" link="harfbuzz-Buffers.html#hb-glyph-info-t-struct.cluster"/>
-    <keyword type="member" name="hb-glyph-position-t-struct.x-advance" link="harfbuzz-Buffers.html#hb-glyph-position-t-struct.x-advance"/>
-    <keyword type="member" name="hb-glyph-position-t-struct.y-advance" link="harfbuzz-Buffers.html#hb-glyph-position-t-struct.y-advance"/>
-    <keyword type="member" name="hb-glyph-position-t-struct.x-offset" link="harfbuzz-Buffers.html#hb-glyph-position-t-struct.x-offset"/>
-    <keyword type="member" name="hb-glyph-position-t-struct.y-offset" link="harfbuzz-Buffers.html#hb-glyph-position-t-struct.y-offset"/>
-    <keyword type="member" name="hb-segment-properties-t-struct.direction" link="harfbuzz-Buffers.html#hb-segment-properties-t-struct.direction"/>
-    <keyword type="member" name="hb-segment-properties-t-struct.script" link="harfbuzz-Buffers.html#hb-segment-properties-t-struct.script"/>
-    <keyword type="member" name="hb-segment-properties-t-struct.language" link="harfbuzz-Buffers.html#hb-segment-properties-t-struct.language"/>
+    <keyword type="function" name="hb_gobject_blob_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-blob-get-type" since="0.9.2"/>
+    <keyword type="function" name="hb_gobject_buffer_content_type_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type"/>
+    <keyword type="function" name="hb_gobject_buffer_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type"/>
+    <keyword type="function" name="hb_gobject_buffer_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type" since="0.9.2"/>
+    <keyword type="function" name="hb_gobject_buffer_serialize_flags_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type"/>
+    <keyword type="function" name="hb_gobject_buffer_serialize_format_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type"/>
+    <keyword type="function" name="hb_gobject_direction_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-direction-get-type"/>
+    <keyword type="function" name="hb_gobject_face_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-face-get-type" since="0.9.2"/>
+    <keyword type="function" name="hb_gobject_font_funcs_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type" since="0.9.2"/>
+    <keyword type="function" name="hb_gobject_font_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-font-get-type" since="0.9.2"/>
+    <keyword type="function" name="hb_gobject_memory_mode_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type"/>
+    <keyword type="function" name="hb_gobject_ot_layout_glyph_class_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type"/>
+    <keyword type="function" name="hb_gobject_script_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-script-get-type"/>
+    <keyword type="function" name="hb_gobject_shape_plan_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type"/>
+    <keyword type="function" name="hb_gobject_unicode_combining_class_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type"/>
+    <keyword type="function" name="hb_gobject_unicode_funcs_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type" since="0.9.2"/>
+    <keyword type="function" name="hb_gobject_unicode_general_category_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type"/>
+    <keyword type="function" name="hb_gobject_buffer_cluster_level_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type"/>
+    <keyword type="function" name="hb_gobject_feature_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-feature-get-type"/>
+    <keyword type="function" name="hb_gobject_glyph_info_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type"/>
+    <keyword type="function" name="hb_gobject_glyph_position_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type"/>
+    <keyword type="function" name="hb_gobject_segment_properties_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type"/>
+    <keyword type="function" name="hb_gobject_set_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-set-get-type"/>
+    <keyword type="function" name="hb_gobject_user_data_key_get_type ()" link="harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type"/>
   </functions>
 </book>
index c665efc..30efdfa 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Hello, Harfbuzz: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Hello, Harfbuzz</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt01.html" title="Part I. User's manual">
 <link rel="prev" href="building.html" title="Building">
 <link rel="next" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -176,6 +176,7 @@ ABC אבג DEF
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 9346b33..28c2e27 100644 (file)
Binary files a/docs/html/home.png and b/docs/html/home.png differ
index fbf4dcd..9139dca 100644 (file)
@@ -7,7 +7,7 @@
 <meta name="description" content="HarfBuzz  HarfBuzz is an OpenType text shaping engine. The current HarfBuzz codebase, formerly known as harfbuzz-ng, is versioned 1.x.x and is stable and under active maintenance. This is what is used in latest versions of Firefox, GNOME, ChromeOS, Chrome, LibreOffice, XeTeX, Android, and KDE, among other places. The canonical source tree is available here. Also available on github. See for release tarballs. The old HarfBuzz codebase, these days known as harfbuzz-old, was derived from FreeType, Pango, and Qt and is available here. It is not actively developed or maintained, and is extremely buggy. All users are encouraged to switch over to the new HarfBuzz as soon as possible. There are no release tarballs of old HarfBuzz whatsoever.">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="next" href="pt01.html" title="Part I. User's manual">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/html/index.sgml b/docs/html/index.sgml
new file mode 100644 (file)
index 0000000..23e3966
--- /dev/null
@@ -0,0 +1,601 @@
+<ANCHOR id="harfbuzz-hb" href="harfbuzz/harfbuzz-hb.html">
+<ANCHOR id="harfbuzz-hb.object-hierarchy" href="harfbuzz/harfbuzz-hb.html#harfbuzz-hb.object-hierarchy">
+<ANCHOR id="harfbuzz-hb.description" href="harfbuzz/harfbuzz-hb.html#harfbuzz-hb.description">
+<ANCHOR id="harfbuzz-hb.functions_details" href="harfbuzz/harfbuzz-hb.html#harfbuzz-hb.functions_details">
+<ANCHOR id="harfbuzz-hb.other_details" href="harfbuzz/harfbuzz-hb.html#harfbuzz-hb.other_details">
+<ANCHOR id="harfbuzz-hb-common" href="harfbuzz/harfbuzz-hb-common.html">
+<ANCHOR id="harfbuzz-hb-common.functions" href="harfbuzz/harfbuzz-hb-common.html#harfbuzz-hb-common.functions">
+<ANCHOR id="hb-user-data-key-t" href="harfbuzz/harfbuzz-hb-common.html#hb-user-data-key-t">
+<ANCHOR id="harfbuzz-hb-common.other" href="harfbuzz/harfbuzz-hb-common.html#harfbuzz-hb-common.other">
+<ANCHOR id="harfbuzz-hb-common.object-hierarchy" href="harfbuzz/harfbuzz-hb-common.html#harfbuzz-hb-common.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-common.description" href="harfbuzz/harfbuzz-hb-common.html#harfbuzz-hb-common.description">
+<ANCHOR id="harfbuzz-hb-common.functions_details" href="harfbuzz/harfbuzz-hb-common.html#harfbuzz-hb-common.functions_details">
+<ANCHOR id="hb-tag-from-string" href="harfbuzz/harfbuzz-hb-common.html#hb-tag-from-string">
+<ANCHOR id="hb-tag-to-string" href="harfbuzz/harfbuzz-hb-common.html#hb-tag-to-string">
+<ANCHOR id="hb-direction-from-string" href="harfbuzz/harfbuzz-hb-common.html#hb-direction-from-string">
+<ANCHOR id="hb-direction-to-string" href="harfbuzz/harfbuzz-hb-common.html#hb-direction-to-string">
+<ANCHOR id="hb-script-from-iso15924-tag" href="harfbuzz/harfbuzz-hb-common.html#hb-script-from-iso15924-tag">
+<ANCHOR id="hb-script-from-string" href="harfbuzz/harfbuzz-hb-common.html#hb-script-from-string">
+<ANCHOR id="hb-script-to-iso15924-tag" href="harfbuzz/harfbuzz-hb-common.html#hb-script-to-iso15924-tag">
+<ANCHOR id="hb-script-get-horizontal-direction" href="harfbuzz/harfbuzz-hb-common.html#hb-script-get-horizontal-direction">
+<ANCHOR id="hb-language-from-string" href="harfbuzz/harfbuzz-hb-common.html#hb-language-from-string">
+<ANCHOR id="hb-language-to-string" href="harfbuzz/harfbuzz-hb-common.html#hb-language-to-string">
+<ANCHOR id="hb-language-get-default" href="harfbuzz/harfbuzz-hb-common.html#hb-language-get-default">
+<ANCHOR id="hb-destroy-func-t" href="harfbuzz/harfbuzz-hb-common.html#hb-destroy-func-t">
+<ANCHOR id="HB-TAG:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-TAG:CAPS">
+<ANCHOR id="HB-UNTAG:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-UNTAG:CAPS">
+<ANCHOR id="HB-DIRECTION-REVERSE:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-DIRECTION-REVERSE:CAPS">
+<ANCHOR id="HB-DIRECTION-IS-BACKWARD:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-DIRECTION-IS-BACKWARD:CAPS">
+<ANCHOR id="HB-DIRECTION-IS-FORWARD:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-DIRECTION-IS-FORWARD:CAPS">
+<ANCHOR id="HB-DIRECTION-IS-HORIZONTAL:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-DIRECTION-IS-HORIZONTAL:CAPS">
+<ANCHOR id="HB-DIRECTION-IS-VALID:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-DIRECTION-IS-VALID:CAPS">
+<ANCHOR id="HB-DIRECTION-IS-VERTICAL:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-DIRECTION-IS-VERTICAL:CAPS">
+<ANCHOR id="HB-LANGUAGE-INVALID:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-LANGUAGE-INVALID:CAPS">
+<ANCHOR id="harfbuzz-hb-common.other_details" href="harfbuzz/harfbuzz-hb-common.html#harfbuzz-hb-common.other_details">
+<ANCHOR id="hb-bool-t" href="harfbuzz/harfbuzz-hb-common.html#hb-bool-t">
+<ANCHOR id="hb-codepoint-t" href="harfbuzz/harfbuzz-hb-common.html#hb-codepoint-t">
+<ANCHOR id="hb-direction-t" href="harfbuzz/harfbuzz-hb-common.html#hb-direction-t">
+<ANCHOR id="hb-language-t" href="harfbuzz/harfbuzz-hb-common.html#hb-language-t">
+<ANCHOR id="hb-mask-t" href="harfbuzz/harfbuzz-hb-common.html#hb-mask-t">
+<ANCHOR id="hb-position-t" href="harfbuzz/harfbuzz-hb-common.html#hb-position-t">
+<ANCHOR id="hb-tag-t" href="harfbuzz/harfbuzz-hb-common.html#hb-tag-t">
+<ANCHOR id="hb-script-t" href="harfbuzz/harfbuzz-hb-common.html#hb-script-t">
+<ANCHOR id="hb-user-data-key-t-struct" href="harfbuzz/harfbuzz-hb-common.html#hb-user-data-key-t-struct">
+<ANCHOR id="hb-var-int-t" href="harfbuzz/harfbuzz-hb-common.html#hb-var-int-t">
+<ANCHOR id="HB-TAG-NONE:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-TAG-NONE:CAPS">
+<ANCHOR id="HB-TAG-MAX:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-TAG-MAX:CAPS">
+<ANCHOR id="HB-TAG-MAX-SIGNED:CAPS" href="harfbuzz/harfbuzz-hb-common.html#HB-TAG-MAX-SIGNED:CAPS">
+<ANCHOR id="harfbuzz-hb-unicode" href="harfbuzz/harfbuzz-hb-unicode.html">
+<ANCHOR id="harfbuzz-hb-unicode.functions" href="harfbuzz/harfbuzz-hb-unicode.html#harfbuzz-hb-unicode.functions">
+<ANCHOR id="hb-unicode-funcs-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-t">
+<ANCHOR id="harfbuzz-hb-unicode.other" href="harfbuzz/harfbuzz-hb-unicode.html#harfbuzz-hb-unicode.other">
+<ANCHOR id="harfbuzz-hb-unicode.object-hierarchy" href="harfbuzz/harfbuzz-hb-unicode.html#harfbuzz-hb-unicode.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-unicode.description" href="harfbuzz/harfbuzz-hb-unicode.html#harfbuzz-hb-unicode.description">
+<ANCHOR id="harfbuzz-hb-unicode.functions_details" href="harfbuzz/harfbuzz-hb-unicode.html#harfbuzz-hb-unicode.functions_details">
+<ANCHOR id="HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS" href="harfbuzz/harfbuzz-hb-unicode.html#HB-UNICODE-MAX-DECOMPOSITION-LEN:CAPS">
+<ANCHOR id="hb-unicode-combining-class" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-combining-class">
+<ANCHOR id="hb-unicode-combining-class-func-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-combining-class-func-t">
+<ANCHOR id="hb-unicode-compose" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-compose">
+<ANCHOR id="hb-unicode-compose-func-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-compose-func-t">
+<ANCHOR id="hb-unicode-decompose" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-decompose">
+<ANCHOR id="hb-unicode-decompose-compatibility" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-decompose-compatibility">
+<ANCHOR id="hb-unicode-decompose-func-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-decompose-func-t">
+<ANCHOR id="hb-unicode-eastasian-width" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-eastasian-width">
+<ANCHOR id="hb-unicode-funcs-create" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-create">
+<ANCHOR id="hb-unicode-funcs-destroy" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-destroy">
+<ANCHOR id="hb-unicode-funcs-get-default" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-get-default">
+<ANCHOR id="hb-unicode-funcs-get-empty" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-get-empty">
+<ANCHOR id="hb-unicode-funcs-get-parent" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-get-parent">
+<ANCHOR id="hb-unicode-funcs-get-user-data" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-get-user-data">
+<ANCHOR id="hb-unicode-funcs-is-immutable" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-is-immutable">
+<ANCHOR id="hb-unicode-funcs-make-immutable" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-make-immutable">
+<ANCHOR id="hb-unicode-funcs-reference" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-reference">
+<ANCHOR id="hb-unicode-funcs-set-combining-class-func" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-combining-class-func">
+<ANCHOR id="hb-unicode-funcs-set-compose-func" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-compose-func">
+<ANCHOR id="hb-unicode-funcs-set-decompose-compatibility-func" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-decompose-compatibility-func">
+<ANCHOR id="hb-unicode-funcs-set-decompose-func" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-decompose-func">
+<ANCHOR id="hb-unicode-funcs-set-eastasian-width-func" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-eastasian-width-func">
+<ANCHOR id="hb-unicode-funcs-set-general-category-func" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-general-category-func">
+<ANCHOR id="hb-unicode-funcs-set-mirroring-func" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-mirroring-func">
+<ANCHOR id="hb-unicode-funcs-set-script-func" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-script-func">
+<ANCHOR id="hb-unicode-funcs-set-user-data" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-set-user-data">
+<ANCHOR id="hb-unicode-general-category" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-general-category">
+<ANCHOR id="hb-unicode-general-category-func-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-general-category-func-t">
+<ANCHOR id="hb-unicode-mirroring" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-mirroring">
+<ANCHOR id="hb-unicode-mirroring-func-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-mirroring-func-t">
+<ANCHOR id="hb-unicode-script" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-script">
+<ANCHOR id="hb-unicode-script-func-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-script-func-t">
+<ANCHOR id="harfbuzz-hb-unicode.other_details" href="harfbuzz/harfbuzz-hb-unicode.html#harfbuzz-hb-unicode.other_details">
+<ANCHOR id="hb-unicode-combining-class-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-combining-class-t">
+<ANCHOR id="hb-unicode-funcs-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-funcs-t">
+<ANCHOR id="hb-unicode-general-category-t" href="harfbuzz/harfbuzz-hb-unicode.html#hb-unicode-general-category-t">
+<ANCHOR id="harfbuzz-Buffers" href="harfbuzz/harfbuzz-Buffers.html">
+<ANCHOR id="harfbuzz-Buffers.functions" href="harfbuzz/harfbuzz-Buffers.html#harfbuzz-Buffers.functions">
+<ANCHOR id="hb-buffer-t" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-t">
+<ANCHOR id="hb-glyph-info-t" href="harfbuzz/harfbuzz-Buffers.html#hb-glyph-info-t">
+<ANCHOR id="hb-glyph-position-t" href="harfbuzz/harfbuzz-Buffers.html#hb-glyph-position-t">
+<ANCHOR id="hb-segment-properties-t" href="harfbuzz/harfbuzz-Buffers.html#hb-segment-properties-t">
+<ANCHOR id="harfbuzz-Buffers.other" href="harfbuzz/harfbuzz-Buffers.html#harfbuzz-Buffers.other">
+<ANCHOR id="harfbuzz-Buffers.object-hierarchy" href="harfbuzz/harfbuzz-Buffers.html#harfbuzz-Buffers.object-hierarchy">
+<ANCHOR id="harfbuzz-Buffers.includes" href="harfbuzz/harfbuzz-Buffers.html#harfbuzz-Buffers.includes">
+<ANCHOR id="harfbuzz-Buffers.description" href="harfbuzz/harfbuzz-Buffers.html#harfbuzz-Buffers.description">
+<ANCHOR id="harfbuzz-Buffers.functions_details" href="harfbuzz/harfbuzz-Buffers.html#harfbuzz-Buffers.functions_details">
+<ANCHOR id="hb-buffer-create" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-create">
+<ANCHOR id="hb-buffer-reference" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-reference">
+<ANCHOR id="hb-buffer-get-empty" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-empty">
+<ANCHOR id="hb-buffer-destroy" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-destroy">
+<ANCHOR id="hb-buffer-reset" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-reset">
+<ANCHOR id="hb-buffer-clear-contents" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-clear-contents">
+<ANCHOR id="hb-buffer-pre-allocate" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-pre-allocate">
+<ANCHOR id="hb-buffer-allocation-successful" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-allocation-successful">
+<ANCHOR id="hb-buffer-add" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-add">
+<ANCHOR id="hb-buffer-add-codepoints" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-add-codepoints">
+<ANCHOR id="hb-buffer-add-utf32" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-add-utf32">
+<ANCHOR id="hb-buffer-add-utf16" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-add-utf16">
+<ANCHOR id="hb-buffer-add-utf8" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-add-utf8">
+<ANCHOR id="hb-buffer-add-latin1" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-add-latin1">
+<ANCHOR id="hb-buffer-set-content-type" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-content-type">
+<ANCHOR id="hb-buffer-get-content-type" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-content-type">
+<ANCHOR id="hb-buffer-set-direction" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-direction">
+<ANCHOR id="hb-buffer-get-direction" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-direction">
+<ANCHOR id="hb-buffer-set-script" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-script">
+<ANCHOR id="hb-buffer-get-script" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-script">
+<ANCHOR id="hb-buffer-set-language" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-language">
+<ANCHOR id="hb-buffer-get-language" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-language">
+<ANCHOR id="hb-buffer-set-flags" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-flags">
+<ANCHOR id="hb-buffer-get-flags" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-flags">
+<ANCHOR id="hb-buffer-set-cluster-level" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-cluster-level">
+<ANCHOR id="hb-buffer-get-cluster-level" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-cluster-level">
+<ANCHOR id="hb-buffer-set-length" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-length">
+<ANCHOR id="hb-buffer-get-length" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-length">
+<ANCHOR id="hb-buffer-set-segment-properties" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-segment-properties">
+<ANCHOR id="hb-buffer-get-segment-properties" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-segment-properties">
+<ANCHOR id="hb-buffer-guess-segment-properties" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-guess-segment-properties">
+<ANCHOR id="hb-buffer-set-unicode-funcs" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-unicode-funcs">
+<ANCHOR id="hb-buffer-get-unicode-funcs" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-unicode-funcs">
+<ANCHOR id="hb-buffer-set-user-data" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-user-data">
+<ANCHOR id="hb-buffer-get-user-data" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-user-data">
+<ANCHOR id="hb-buffer-get-glyph-infos" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-glyph-infos">
+<ANCHOR id="hb-buffer-get-glyph-positions" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-glyph-positions">
+<ANCHOR id="hb-buffer-set-replacement-codepoint" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-replacement-codepoint">
+<ANCHOR id="hb-buffer-get-replacement-codepoint" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-get-replacement-codepoint">
+<ANCHOR id="hb-buffer-normalize-glyphs" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-normalize-glyphs">
+<ANCHOR id="hb-buffer-reverse" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-reverse">
+<ANCHOR id="hb-buffer-reverse-range" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-reverse-range">
+<ANCHOR id="hb-buffer-reverse-clusters" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-reverse-clusters">
+<ANCHOR id="hb-buffer-serialize-glyphs" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-serialize-glyphs">
+<ANCHOR id="hb-buffer-deserialize-glyphs" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-deserialize-glyphs">
+<ANCHOR id="hb-buffer-serialize-format-from-string" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-serialize-format-from-string">
+<ANCHOR id="hb-buffer-serialize-format-to-string" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-serialize-format-to-string">
+<ANCHOR id="hb-buffer-serialize-list-formats" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-serialize-list-formats">
+<ANCHOR id="hb-segment-properties-equal" href="harfbuzz/harfbuzz-Buffers.html#hb-segment-properties-equal">
+<ANCHOR id="hb-segment-properties-hash" href="harfbuzz/harfbuzz-Buffers.html#hb-segment-properties-hash">
+<ANCHOR id="hb-buffer-set-message-func" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-set-message-func">
+<ANCHOR id="hb-buffer-message-func-t" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-message-func-t">
+<ANCHOR id="harfbuzz-Buffers.other_details" href="harfbuzz/harfbuzz-Buffers.html#harfbuzz-Buffers.other_details">
+<ANCHOR id="HB-SEGMENT-PROPERTIES-DEFAULT:CAPS" href="harfbuzz/harfbuzz-Buffers.html#HB-SEGMENT-PROPERTIES-DEFAULT:CAPS">
+<ANCHOR id="HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS" href="harfbuzz/harfbuzz-Buffers.html#HB-BUFFER-REPLACEMENT-CODEPOINT-DEFAULT:CAPS">
+<ANCHOR id="hb-buffer-t" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-t">
+<ANCHOR id="hb-glyph-info-t-struct" href="harfbuzz/harfbuzz-Buffers.html#hb-glyph-info-t-struct">
+<ANCHOR id="hb-glyph-position-t-struct" href="harfbuzz/harfbuzz-Buffers.html#hb-glyph-position-t-struct">
+<ANCHOR id="hb-buffer-content-type-t" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-content-type-t">
+<ANCHOR id="hb-buffer-flags-t" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-flags-t">
+<ANCHOR id="hb-buffer-cluster-level-t" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-cluster-level-t">
+<ANCHOR id="hb-segment-properties-t-struct" href="harfbuzz/harfbuzz-Buffers.html#hb-segment-properties-t-struct">
+<ANCHOR id="hb-buffer-serialize-format-t" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-serialize-format-t">
+<ANCHOR id="hb-buffer-serialize-flags-t" href="harfbuzz/harfbuzz-Buffers.html#hb-buffer-serialize-flags-t">
+<ANCHOR id="harfbuzz-hb-blob" href="harfbuzz/harfbuzz-hb-blob.html">
+<ANCHOR id="harfbuzz-hb-blob.functions" href="harfbuzz/harfbuzz-hb-blob.html#harfbuzz-hb-blob.functions">
+<ANCHOR id="hb-blob-t" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-t">
+<ANCHOR id="harfbuzz-hb-blob.other" href="harfbuzz/harfbuzz-hb-blob.html#harfbuzz-hb-blob.other">
+<ANCHOR id="harfbuzz-hb-blob.object-hierarchy" href="harfbuzz/harfbuzz-hb-blob.html#harfbuzz-hb-blob.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-blob.description" href="harfbuzz/harfbuzz-hb-blob.html#harfbuzz-hb-blob.description">
+<ANCHOR id="harfbuzz-hb-blob.functions_details" href="harfbuzz/harfbuzz-hb-blob.html#harfbuzz-hb-blob.functions_details">
+<ANCHOR id="hb-blob-create" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-create">
+<ANCHOR id="hb-blob-create-sub-blob" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-create-sub-blob">
+<ANCHOR id="hb-blob-destroy" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-destroy">
+<ANCHOR id="hb-blob-get-data" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-get-data">
+<ANCHOR id="hb-blob-get-data-writable" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-get-data-writable">
+<ANCHOR id="hb-blob-get-empty" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-get-empty">
+<ANCHOR id="hb-blob-get-length" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-get-length">
+<ANCHOR id="hb-blob-get-user-data" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-get-user-data">
+<ANCHOR id="hb-blob-is-immutable" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-is-immutable">
+<ANCHOR id="hb-blob-make-immutable" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-make-immutable">
+<ANCHOR id="hb-blob-reference" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-reference">
+<ANCHOR id="hb-blob-set-user-data" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-set-user-data">
+<ANCHOR id="harfbuzz-hb-blob.other_details" href="harfbuzz/harfbuzz-hb-blob.html#harfbuzz-hb-blob.other_details">
+<ANCHOR id="hb-blob-t" href="harfbuzz/harfbuzz-hb-blob.html#hb-blob-t">
+<ANCHOR id="hb-memory-mode-t" href="harfbuzz/harfbuzz-hb-blob.html#hb-memory-mode-t">
+<ANCHOR id="harfbuzz-hb-face" href="harfbuzz/harfbuzz-hb-face.html">
+<ANCHOR id="harfbuzz-hb-face.functions" href="harfbuzz/harfbuzz-hb-face.html#harfbuzz-hb-face.functions">
+<ANCHOR id="hb-face-t" href="harfbuzz/harfbuzz-hb-face.html#hb-face-t">
+<ANCHOR id="harfbuzz-hb-face.other" href="harfbuzz/harfbuzz-hb-face.html#harfbuzz-hb-face.other">
+<ANCHOR id="harfbuzz-hb-face.object-hierarchy" href="harfbuzz/harfbuzz-hb-face.html#harfbuzz-hb-face.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-face.description" href="harfbuzz/harfbuzz-hb-face.html#harfbuzz-hb-face.description">
+<ANCHOR id="harfbuzz-hb-face.functions_details" href="harfbuzz/harfbuzz-hb-face.html#harfbuzz-hb-face.functions_details">
+<ANCHOR id="hb-face-create" href="harfbuzz/harfbuzz-hb-face.html#hb-face-create">
+<ANCHOR id="hb-face-create-for-tables" href="harfbuzz/harfbuzz-hb-face.html#hb-face-create-for-tables">
+<ANCHOR id="hb-face-destroy" href="harfbuzz/harfbuzz-hb-face.html#hb-face-destroy">
+<ANCHOR id="hb-face-get-empty" href="harfbuzz/harfbuzz-hb-face.html#hb-face-get-empty">
+<ANCHOR id="hb-face-get-glyph-count" href="harfbuzz/harfbuzz-hb-face.html#hb-face-get-glyph-count">
+<ANCHOR id="hb-face-get-index" href="harfbuzz/harfbuzz-hb-face.html#hb-face-get-index">
+<ANCHOR id="hb-face-get-upem" href="harfbuzz/harfbuzz-hb-face.html#hb-face-get-upem">
+<ANCHOR id="hb-face-get-user-data" href="harfbuzz/harfbuzz-hb-face.html#hb-face-get-user-data">
+<ANCHOR id="hb-face-is-immutable" href="harfbuzz/harfbuzz-hb-face.html#hb-face-is-immutable">
+<ANCHOR id="hb-face-make-immutable" href="harfbuzz/harfbuzz-hb-face.html#hb-face-make-immutable">
+<ANCHOR id="hb-face-reference" href="harfbuzz/harfbuzz-hb-face.html#hb-face-reference">
+<ANCHOR id="hb-face-reference-blob" href="harfbuzz/harfbuzz-hb-face.html#hb-face-reference-blob">
+<ANCHOR id="hb-face-reference-table" href="harfbuzz/harfbuzz-hb-face.html#hb-face-reference-table">
+<ANCHOR id="hb-face-set-glyph-count" href="harfbuzz/harfbuzz-hb-face.html#hb-face-set-glyph-count">
+<ANCHOR id="hb-face-set-index" href="harfbuzz/harfbuzz-hb-face.html#hb-face-set-index">
+<ANCHOR id="hb-face-set-upem" href="harfbuzz/harfbuzz-hb-face.html#hb-face-set-upem">
+<ANCHOR id="hb-face-set-user-data" href="harfbuzz/harfbuzz-hb-face.html#hb-face-set-user-data">
+<ANCHOR id="harfbuzz-hb-face.other_details" href="harfbuzz/harfbuzz-hb-face.html#harfbuzz-hb-face.other_details">
+<ANCHOR id="hb-face-t" href="harfbuzz/harfbuzz-hb-face.html#hb-face-t">
+<ANCHOR id="harfbuzz-hb-font" href="harfbuzz/harfbuzz-hb-font.html">
+<ANCHOR id="harfbuzz-hb-font.functions" href="harfbuzz/harfbuzz-hb-font.html#harfbuzz-hb-font.functions">
+<ANCHOR id="hb-font-funcs-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-t">
+<ANCHOR id="hb-font-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-t">
+<ANCHOR id="harfbuzz-hb-font.other" href="harfbuzz/harfbuzz-hb-font.html#harfbuzz-hb-font.other">
+<ANCHOR id="harfbuzz-hb-font.object-hierarchy" href="harfbuzz/harfbuzz-hb-font.html#harfbuzz-hb-font.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-font.description" href="harfbuzz/harfbuzz-hb-font.html#harfbuzz-hb-font.description">
+<ANCHOR id="harfbuzz-hb-font.functions_details" href="harfbuzz/harfbuzz-hb-font.html#harfbuzz-hb-font.functions_details">
+<ANCHOR id="hb-font-add-glyph-origin-for-direction" href="harfbuzz/harfbuzz-hb-font.html#hb-font-add-glyph-origin-for-direction">
+<ANCHOR id="hb-font-create" href="harfbuzz/harfbuzz-hb-font.html#hb-font-create">
+<ANCHOR id="hb-font-create-sub-font" href="harfbuzz/harfbuzz-hb-font.html#hb-font-create-sub-font">
+<ANCHOR id="hb-font-destroy" href="harfbuzz/harfbuzz-hb-font.html#hb-font-destroy">
+<ANCHOR id="hb-font-funcs-create" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-create">
+<ANCHOR id="hb-font-funcs-destroy" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-destroy">
+<ANCHOR id="hb-font-funcs-get-empty" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-get-empty">
+<ANCHOR id="hb-font-funcs-get-user-data" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-get-user-data">
+<ANCHOR id="hb-font-funcs-is-immutable" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-is-immutable">
+<ANCHOR id="hb-font-funcs-make-immutable" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-make-immutable">
+<ANCHOR id="hb-font-funcs-reference" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-reference">
+<ANCHOR id="hb-font-funcs-set-glyph-contour-point-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-contour-point-func">
+<ANCHOR id="hb-font-funcs-set-glyph-extents-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-extents-func">
+<ANCHOR id="hb-font-funcs-set-glyph-from-name-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-from-name-func">
+<ANCHOR id="hb-font-funcs-set-glyph-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-func">
+<ANCHOR id="hb-font-funcs-set-glyph-h-advance-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-advance-func">
+<ANCHOR id="hb-font-funcs-set-glyph-h-kerning-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-kerning-func">
+<ANCHOR id="hb-font-funcs-set-glyph-h-origin-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-h-origin-func">
+<ANCHOR id="hb-font-funcs-set-glyph-name-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-name-func">
+<ANCHOR id="hb-font-funcs-set-glyph-v-advance-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-v-advance-func">
+<ANCHOR id="hb-font-funcs-set-glyph-v-kerning-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-v-kerning-func">
+<ANCHOR id="hb-font-funcs-set-glyph-v-origin-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-glyph-v-origin-func">
+<ANCHOR id="hb-font-funcs-set-user-data" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-user-data">
+<ANCHOR id="hb-font-get-empty" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-empty">
+<ANCHOR id="hb-font-get-face" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-face">
+<ANCHOR id="hb-font-get-glyph" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph">
+<ANCHOR id="hb-font-get-glyph-advance-for-direction" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-advance-for-direction">
+<ANCHOR id="hb-font-get-glyph-advance-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-advance-func-t">
+<ANCHOR id="hb-font-get-glyph-contour-point" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-contour-point">
+<ANCHOR id="hb-font-get-glyph-contour-point-for-origin" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-contour-point-for-origin">
+<ANCHOR id="hb-font-get-glyph-contour-point-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-contour-point-func-t">
+<ANCHOR id="hb-font-get-glyph-extents" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-extents">
+<ANCHOR id="hb-font-get-glyph-extents-for-origin" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-extents-for-origin">
+<ANCHOR id="hb-font-get-glyph-extents-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-extents-func-t">
+<ANCHOR id="hb-font-get-glyph-from-name" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-from-name">
+<ANCHOR id="hb-font-get-glyph-from-name-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-from-name-func-t">
+<ANCHOR id="hb-font-get-glyph-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-func-t">
+<ANCHOR id="hb-font-get-glyph-h-advance" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-h-advance">
+<ANCHOR id="hb-font-get-glyph-h-kerning" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning">
+<ANCHOR id="hb-font-get-glyph-h-origin" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-h-origin">
+<ANCHOR id="hb-font-get-glyph-kerning-for-direction" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-kerning-for-direction">
+<ANCHOR id="hb-font-get-glyph-kerning-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-kerning-func-t">
+<ANCHOR id="hb-font-get-glyph-name" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-name">
+<ANCHOR id="hb-font-get-glyph-name-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-name-func-t">
+<ANCHOR id="hb-font-get-glyph-origin-for-direction" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-origin-for-direction">
+<ANCHOR id="hb-font-get-glyph-origin-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-origin-func-t">
+<ANCHOR id="hb-font-get-glyph-v-advance" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-v-advance">
+<ANCHOR id="hb-font-get-glyph-v-kerning" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-v-kerning">
+<ANCHOR id="hb-font-get-glyph-v-origin" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-v-origin">
+<ANCHOR id="hb-font-get-parent" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-parent">
+<ANCHOR id="hb-font-get-ppem" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-ppem">
+<ANCHOR id="hb-font-get-scale" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-scale">
+<ANCHOR id="hb-font-get-user-data" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-user-data">
+<ANCHOR id="hb-font-glyph-from-string" href="harfbuzz/harfbuzz-hb-font.html#hb-font-glyph-from-string">
+<ANCHOR id="hb-font-glyph-to-string" href="harfbuzz/harfbuzz-hb-font.html#hb-font-glyph-to-string">
+<ANCHOR id="hb-font-is-immutable" href="harfbuzz/harfbuzz-hb-font.html#hb-font-is-immutable">
+<ANCHOR id="hb-font-make-immutable" href="harfbuzz/harfbuzz-hb-font.html#hb-font-make-immutable">
+<ANCHOR id="hb-font-reference" href="harfbuzz/harfbuzz-hb-font.html#hb-font-reference">
+<ANCHOR id="hb-font-set-funcs" href="harfbuzz/harfbuzz-hb-font.html#hb-font-set-funcs">
+<ANCHOR id="hb-font-set-funcs-data" href="harfbuzz/harfbuzz-hb-font.html#hb-font-set-funcs-data">
+<ANCHOR id="hb-font-set-ppem" href="harfbuzz/harfbuzz-hb-font.html#hb-font-set-ppem">
+<ANCHOR id="hb-font-set-scale" href="harfbuzz/harfbuzz-hb-font.html#hb-font-set-scale">
+<ANCHOR id="hb-font-set-user-data" href="harfbuzz/harfbuzz-hb-font.html#hb-font-set-user-data">
+<ANCHOR id="hb-font-subtract-glyph-origin-for-direction" href="harfbuzz/harfbuzz-hb-font.html#hb-font-subtract-glyph-origin-for-direction">
+<ANCHOR id="hb-reference-table-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-reference-table-func-t">
+<ANCHOR id="hb-font-funcs-set-font-h-extents-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-font-h-extents-func">
+<ANCHOR id="hb-font-funcs-set-font-v-extents-func" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-set-font-v-extents-func">
+<ANCHOR id="hb-font-get-extents-for-direction" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-extents-for-direction">
+<ANCHOR id="hb-font-get-font-extents-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-font-extents-func-t">
+<ANCHOR id="hb-font-get-h-extents" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-h-extents">
+<ANCHOR id="hb-font-get-v-extents" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-v-extents">
+<ANCHOR id="hb-font-set-parent" href="harfbuzz/harfbuzz-hb-font.html#hb-font-set-parent">
+<ANCHOR id="harfbuzz-hb-font.other_details" href="harfbuzz/harfbuzz-hb-font.html#harfbuzz-hb-font.other_details">
+<ANCHOR id="hb-font-funcs-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-funcs-t">
+<ANCHOR id="hb-font-get-glyph-h-advance-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-h-advance-func-t">
+<ANCHOR id="hb-font-get-glyph-h-kerning-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-h-kerning-func-t">
+<ANCHOR id="hb-font-get-glyph-h-origin-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-h-origin-func-t">
+<ANCHOR id="hb-font-get-glyph-v-advance-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-v-advance-func-t">
+<ANCHOR id="hb-font-get-glyph-v-kerning-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-v-kerning-func-t">
+<ANCHOR id="hb-font-get-glyph-v-origin-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-glyph-v-origin-func-t">
+<ANCHOR id="hb-font-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-t">
+<ANCHOR id="hb-font-get-font-h-extents-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-font-h-extents-func-t">
+<ANCHOR id="hb-font-get-font-v-extents-func-t" href="harfbuzz/harfbuzz-hb-font.html#hb-font-get-font-v-extents-func-t">
+<ANCHOR id="harfbuzz-Shaping" href="harfbuzz/harfbuzz-Shaping.html">
+<ANCHOR id="harfbuzz-Shaping.functions" href="harfbuzz/harfbuzz-Shaping.html#harfbuzz-Shaping.functions">
+<ANCHOR id="hb-feature-t" href="harfbuzz/harfbuzz-Shaping.html#hb-feature-t">
+<ANCHOR id="harfbuzz-Shaping.other" href="harfbuzz/harfbuzz-Shaping.html#harfbuzz-Shaping.other">
+<ANCHOR id="harfbuzz-Shaping.object-hierarchy" href="harfbuzz/harfbuzz-Shaping.html#harfbuzz-Shaping.object-hierarchy">
+<ANCHOR id="harfbuzz-Shaping.includes" href="harfbuzz/harfbuzz-Shaping.html#harfbuzz-Shaping.includes">
+<ANCHOR id="harfbuzz-Shaping.description" href="harfbuzz/harfbuzz-Shaping.html#harfbuzz-Shaping.description">
+<ANCHOR id="harfbuzz-Shaping.functions_details" href="harfbuzz/harfbuzz-Shaping.html#harfbuzz-Shaping.functions_details">
+<ANCHOR id="hb-feature-from-string" href="harfbuzz/harfbuzz-Shaping.html#hb-feature-from-string">
+<ANCHOR id="hb-feature-to-string" href="harfbuzz/harfbuzz-Shaping.html#hb-feature-to-string">
+<ANCHOR id="hb-shape" href="harfbuzz/harfbuzz-Shaping.html#hb-shape">
+<ANCHOR id="hb-shape-full" href="harfbuzz/harfbuzz-Shaping.html#hb-shape-full">
+<ANCHOR id="hb-shape-list-shapers" href="harfbuzz/harfbuzz-Shaping.html#hb-shape-list-shapers">
+<ANCHOR id="harfbuzz-Shaping.other_details" href="harfbuzz/harfbuzz-Shaping.html#harfbuzz-Shaping.other_details">
+<ANCHOR id="hb-feature-t-struct" href="harfbuzz/harfbuzz-Shaping.html#hb-feature-t-struct">
+<ANCHOR id="harfbuzz-hb-version" href="harfbuzz/harfbuzz-hb-version.html">
+<ANCHOR id="harfbuzz-hb-version.functions" href="harfbuzz/harfbuzz-hb-version.html#harfbuzz-hb-version.functions">
+<ANCHOR id="harfbuzz-hb-version.other" href="harfbuzz/harfbuzz-hb-version.html#harfbuzz-hb-version.other">
+<ANCHOR id="harfbuzz-hb-version.object-hierarchy" href="harfbuzz/harfbuzz-hb-version.html#harfbuzz-hb-version.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-version.description" href="harfbuzz/harfbuzz-hb-version.html#harfbuzz-hb-version.description">
+<ANCHOR id="harfbuzz-hb-version.functions_details" href="harfbuzz/harfbuzz-hb-version.html#harfbuzz-hb-version.functions_details">
+<ANCHOR id="HB-VERSION-ATLEAST:CAPS" href="harfbuzz/harfbuzz-hb-version.html#HB-VERSION-ATLEAST:CAPS">
+<ANCHOR id="hb-version" href="harfbuzz/harfbuzz-hb-version.html#hb-version">
+<ANCHOR id="hb-version-atleast" href="harfbuzz/harfbuzz-hb-version.html#hb-version-atleast">
+<ANCHOR id="hb-version-string" href="harfbuzz/harfbuzz-hb-version.html#hb-version-string">
+<ANCHOR id="harfbuzz-hb-version.other_details" href="harfbuzz/harfbuzz-hb-version.html#harfbuzz-hb-version.other_details">
+<ANCHOR id="HB-VERSION-MAJOR:CAPS" href="harfbuzz/harfbuzz-hb-version.html#HB-VERSION-MAJOR:CAPS">
+<ANCHOR id="HB-VERSION-MICRO:CAPS" href="harfbuzz/harfbuzz-hb-version.html#HB-VERSION-MICRO:CAPS">
+<ANCHOR id="HB-VERSION-MINOR:CAPS" href="harfbuzz/harfbuzz-hb-version.html#HB-VERSION-MINOR:CAPS">
+<ANCHOR id="HB-VERSION-STRING:CAPS" href="harfbuzz/harfbuzz-hb-version.html#HB-VERSION-STRING:CAPS">
+<ANCHOR id="harfbuzz-hb-deprecated" href="harfbuzz/harfbuzz-hb-deprecated.html">
+<ANCHOR id="harfbuzz-hb-deprecated.other" href="harfbuzz/harfbuzz-hb-deprecated.html#harfbuzz-hb-deprecated.other">
+<ANCHOR id="harfbuzz-hb-deprecated.object-hierarchy" href="harfbuzz/harfbuzz-hb-deprecated.html#harfbuzz-hb-deprecated.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-deprecated.description" href="harfbuzz/harfbuzz-hb-deprecated.html#harfbuzz-hb-deprecated.description">
+<ANCHOR id="harfbuzz-hb-deprecated.functions_details" href="harfbuzz/harfbuzz-hb-deprecated.html#harfbuzz-hb-deprecated.functions_details">
+<ANCHOR id="harfbuzz-hb-deprecated.other_details" href="harfbuzz/harfbuzz-hb-deprecated.html#harfbuzz-hb-deprecated.other_details">
+<ANCHOR id="HB-BUFFER-FLAGS-DEFAULT:CAPS" href="harfbuzz/harfbuzz-hb-deprecated.html#HB-BUFFER-FLAGS-DEFAULT:CAPS">
+<ANCHOR id="HB-BUFFER-SERIALIZE-FLAGS-DEFAULT:CAPS" href="harfbuzz/harfbuzz-hb-deprecated.html#HB-BUFFER-SERIALIZE-FLAGS-DEFAULT:CAPS">
+<ANCHOR id="HB-SCRIPT-CANADIAN-ABORIGINAL:CAPS" href="harfbuzz/harfbuzz-hb-deprecated.html#HB-SCRIPT-CANADIAN-ABORIGINAL:CAPS">
+<ANCHOR id="harfbuzz-hb-set" href="harfbuzz/harfbuzz-hb-set.html">
+<ANCHOR id="harfbuzz-hb-set.functions" href="harfbuzz/harfbuzz-hb-set.html#harfbuzz-hb-set.functions">
+<ANCHOR id="hb-set-t" href="harfbuzz/harfbuzz-hb-set.html#hb-set-t">
+<ANCHOR id="harfbuzz-hb-set.other" href="harfbuzz/harfbuzz-hb-set.html#harfbuzz-hb-set.other">
+<ANCHOR id="harfbuzz-hb-set.object-hierarchy" href="harfbuzz/harfbuzz-hb-set.html#harfbuzz-hb-set.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-set.description" href="harfbuzz/harfbuzz-hb-set.html#harfbuzz-hb-set.description">
+<ANCHOR id="harfbuzz-hb-set.functions_details" href="harfbuzz/harfbuzz-hb-set.html#harfbuzz-hb-set.functions_details">
+<ANCHOR id="HB-SET-VALUE-INVALID:CAPS" href="harfbuzz/harfbuzz-hb-set.html#HB-SET-VALUE-INVALID:CAPS">
+<ANCHOR id="hb-set-add" href="harfbuzz/harfbuzz-hb-set.html#hb-set-add">
+<ANCHOR id="hb-set-add-range" href="harfbuzz/harfbuzz-hb-set.html#hb-set-add-range">
+<ANCHOR id="hb-set-allocation-successful" href="harfbuzz/harfbuzz-hb-set.html#hb-set-allocation-successful">
+<ANCHOR id="hb-set-clear" href="harfbuzz/harfbuzz-hb-set.html#hb-set-clear">
+<ANCHOR id="hb-set-create" href="harfbuzz/harfbuzz-hb-set.html#hb-set-create">
+<ANCHOR id="hb-set-del" href="harfbuzz/harfbuzz-hb-set.html#hb-set-del">
+<ANCHOR id="hb-set-del-range" href="harfbuzz/harfbuzz-hb-set.html#hb-set-del-range">
+<ANCHOR id="hb-set-destroy" href="harfbuzz/harfbuzz-hb-set.html#hb-set-destroy">
+<ANCHOR id="hb-set-get-empty" href="harfbuzz/harfbuzz-hb-set.html#hb-set-get-empty">
+<ANCHOR id="hb-set-get-max" href="harfbuzz/harfbuzz-hb-set.html#hb-set-get-max">
+<ANCHOR id="hb-set-get-min" href="harfbuzz/harfbuzz-hb-set.html#hb-set-get-min">
+<ANCHOR id="hb-set-get-population" href="harfbuzz/harfbuzz-hb-set.html#hb-set-get-population">
+<ANCHOR id="hb-set-get-user-data" href="harfbuzz/harfbuzz-hb-set.html#hb-set-get-user-data">
+<ANCHOR id="hb-set-has" href="harfbuzz/harfbuzz-hb-set.html#hb-set-has">
+<ANCHOR id="hb-set-intersect" href="harfbuzz/harfbuzz-hb-set.html#hb-set-intersect">
+<ANCHOR id="hb-set-invert" href="harfbuzz/harfbuzz-hb-set.html#hb-set-invert">
+<ANCHOR id="hb-set-is-empty" href="harfbuzz/harfbuzz-hb-set.html#hb-set-is-empty">
+<ANCHOR id="hb-set-is-equal" href="harfbuzz/harfbuzz-hb-set.html#hb-set-is-equal">
+<ANCHOR id="hb-set-next" href="harfbuzz/harfbuzz-hb-set.html#hb-set-next">
+<ANCHOR id="hb-set-next-range" href="harfbuzz/harfbuzz-hb-set.html#hb-set-next-range">
+<ANCHOR id="hb-set-reference" href="harfbuzz/harfbuzz-hb-set.html#hb-set-reference">
+<ANCHOR id="hb-set-set" href="harfbuzz/harfbuzz-hb-set.html#hb-set-set">
+<ANCHOR id="hb-set-set-user-data" href="harfbuzz/harfbuzz-hb-set.html#hb-set-set-user-data">
+<ANCHOR id="hb-set-subtract" href="harfbuzz/harfbuzz-hb-set.html#hb-set-subtract">
+<ANCHOR id="hb-set-symmetric-difference" href="harfbuzz/harfbuzz-hb-set.html#hb-set-symmetric-difference">
+<ANCHOR id="hb-set-union" href="harfbuzz/harfbuzz-hb-set.html#hb-set-union">
+<ANCHOR id="harfbuzz-hb-set.other_details" href="harfbuzz/harfbuzz-hb-set.html#harfbuzz-hb-set.other_details">
+<ANCHOR id="hb-set-t" href="harfbuzz/harfbuzz-hb-set.html#hb-set-t">
+<ANCHOR id="harfbuzz-hb-ot" href="harfbuzz/harfbuzz-hb-ot.html">
+<ANCHOR id="harfbuzz-hb-ot.object-hierarchy" href="harfbuzz/harfbuzz-hb-ot.html#harfbuzz-hb-ot.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-ot.description" href="harfbuzz/harfbuzz-hb-ot.html#harfbuzz-hb-ot.description">
+<ANCHOR id="harfbuzz-hb-ot.functions_details" href="harfbuzz/harfbuzz-hb-ot.html#harfbuzz-hb-ot.functions_details">
+<ANCHOR id="harfbuzz-hb-ot.other_details" href="harfbuzz/harfbuzz-hb-ot.html#harfbuzz-hb-ot.other_details">
+<ANCHOR id="harfbuzz-hb-ot-layout" href="harfbuzz/harfbuzz-hb-ot-layout.html">
+<ANCHOR id="harfbuzz-hb-ot-layout.functions" href="harfbuzz/harfbuzz-hb-ot-layout.html#harfbuzz-hb-ot-layout.functions">
+<ANCHOR id="harfbuzz-hb-ot-layout.other" href="harfbuzz/harfbuzz-hb-ot-layout.html#harfbuzz-hb-ot-layout.other">
+<ANCHOR id="harfbuzz-hb-ot-layout.object-hierarchy" href="harfbuzz/harfbuzz-hb-ot-layout.html#harfbuzz-hb-ot-layout.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-ot-layout.description" href="harfbuzz/harfbuzz-hb-ot-layout.html#harfbuzz-hb-ot-layout.description">
+<ANCHOR id="harfbuzz-hb-ot-layout.functions_details" href="harfbuzz/harfbuzz-hb-ot-layout.html#harfbuzz-hb-ot-layout.functions_details">
+<ANCHOR id="hb-ot-layout-collect-lookups" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-collect-lookups">
+<ANCHOR id="hb-ot-layout-feature-get-lookups" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-feature-get-lookups">
+<ANCHOR id="hb-ot-layout-get-attach-points" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-get-attach-points">
+<ANCHOR id="hb-ot-layout-get-glyph-class" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-get-glyph-class">
+<ANCHOR id="hb-ot-layout-get-glyphs-in-class" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-get-glyphs-in-class">
+<ANCHOR id="hb-ot-layout-get-ligature-carets" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-get-ligature-carets">
+<ANCHOR id="hb-ot-layout-get-size-params" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-get-size-params">
+<ANCHOR id="hb-ot-layout-glyph-sequence-func-t" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-sequence-func-t">
+<ANCHOR id="hb-ot-layout-has-glyph-classes" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-has-glyph-classes">
+<ANCHOR id="hb-ot-layout-has-positioning" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-has-positioning">
+<ANCHOR id="hb-ot-layout-has-substitution" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-has-substitution">
+<ANCHOR id="hb-ot-layout-language-find-feature" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-language-find-feature">
+<ANCHOR id="hb-ot-layout-language-get-feature-indexes" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-feature-indexes">
+<ANCHOR id="hb-ot-layout-language-get-feature-tags" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-feature-tags">
+<ANCHOR id="hb-ot-layout-language-get-required-feature" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-required-feature">
+<ANCHOR id="hb-ot-layout-lookup-collect-glyphs" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-collect-glyphs">
+<ANCHOR id="hb-ot-layout-lookup-substitute-closure" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-substitute-closure">
+<ANCHOR id="hb-ot-layout-lookup-would-substitute" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-lookup-would-substitute">
+<ANCHOR id="hb-ot-layout-script-find-language" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-script-find-language">
+<ANCHOR id="hb-ot-layout-script-get-language-tags" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-script-get-language-tags">
+<ANCHOR id="hb-ot-layout-table-choose-script" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-table-choose-script">
+<ANCHOR id="hb-ot-layout-table-find-script" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-table-find-script">
+<ANCHOR id="hb-ot-layout-table-get-feature-tags" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-table-get-feature-tags">
+<ANCHOR id="hb-ot-layout-table-get-script-tags" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-table-get-script-tags">
+<ANCHOR id="hb-ot-layout-table-get-lookup-count" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-table-get-lookup-count">
+<ANCHOR id="hb-ot-shape-plan-collect-lookups" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-shape-plan-collect-lookups">
+<ANCHOR id="hb-ot-layout-language-get-required-feature-index" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-language-get-required-feature-index">
+<ANCHOR id="harfbuzz-hb-ot-layout.other_details" href="harfbuzz/harfbuzz-hb-ot-layout.html#harfbuzz-hb-ot-layout.other_details">
+<ANCHOR id="HB-OT-LAYOUT-DEFAULT-LANGUAGE-INDEX:CAPS" href="harfbuzz/harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-DEFAULT-LANGUAGE-INDEX:CAPS">
+<ANCHOR id="HB-OT-LAYOUT-NO-FEATURE-INDEX:CAPS" href="harfbuzz/harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-NO-FEATURE-INDEX:CAPS">
+<ANCHOR id="HB-OT-LAYOUT-NO-SCRIPT-INDEX:CAPS" href="harfbuzz/harfbuzz-hb-ot-layout.html#HB-OT-LAYOUT-NO-SCRIPT-INDEX:CAPS">
+<ANCHOR id="HB-OT-TAG-GDEF:CAPS" href="harfbuzz/harfbuzz-hb-ot-layout.html#HB-OT-TAG-GDEF:CAPS">
+<ANCHOR id="HB-OT-TAG-GPOS:CAPS" href="harfbuzz/harfbuzz-hb-ot-layout.html#HB-OT-TAG-GPOS:CAPS">
+<ANCHOR id="HB-OT-TAG-GSUB:CAPS" href="harfbuzz/harfbuzz-hb-ot-layout.html#HB-OT-TAG-GSUB:CAPS">
+<ANCHOR id="HB-OT-TAG-JSTF:CAPS" href="harfbuzz/harfbuzz-hb-ot-layout.html#HB-OT-TAG-JSTF:CAPS">
+<ANCHOR id="hb-ot-layout-glyph-class-t" href="harfbuzz/harfbuzz-hb-ot-layout.html#hb-ot-layout-glyph-class-t">
+<ANCHOR id="harfbuzz-hb-ot-tag" href="harfbuzz/harfbuzz-hb-ot-tag.html">
+<ANCHOR id="harfbuzz-hb-ot-tag.functions" href="harfbuzz/harfbuzz-hb-ot-tag.html#harfbuzz-hb-ot-tag.functions">
+<ANCHOR id="harfbuzz-hb-ot-tag.other" href="harfbuzz/harfbuzz-hb-ot-tag.html#harfbuzz-hb-ot-tag.other">
+<ANCHOR id="harfbuzz-hb-ot-tag.object-hierarchy" href="harfbuzz/harfbuzz-hb-ot-tag.html#harfbuzz-hb-ot-tag.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-ot-tag.description" href="harfbuzz/harfbuzz-hb-ot-tag.html#harfbuzz-hb-ot-tag.description">
+<ANCHOR id="harfbuzz-hb-ot-tag.functions_details" href="harfbuzz/harfbuzz-hb-ot-tag.html#harfbuzz-hb-ot-tag.functions_details">
+<ANCHOR id="hb-ot-tag-from-language" href="harfbuzz/harfbuzz-hb-ot-tag.html#hb-ot-tag-from-language">
+<ANCHOR id="hb-ot-tag-to-language" href="harfbuzz/harfbuzz-hb-ot-tag.html#hb-ot-tag-to-language">
+<ANCHOR id="hb-ot-tag-to-script" href="harfbuzz/harfbuzz-hb-ot-tag.html#hb-ot-tag-to-script">
+<ANCHOR id="hb-ot-tags-from-script" href="harfbuzz/harfbuzz-hb-ot-tag.html#hb-ot-tags-from-script">
+<ANCHOR id="harfbuzz-hb-ot-tag.other_details" href="harfbuzz/harfbuzz-hb-ot-tag.html#harfbuzz-hb-ot-tag.other_details">
+<ANCHOR id="HB-OT-TAG-DEFAULT-LANGUAGE:CAPS" href="harfbuzz/harfbuzz-hb-ot-tag.html#HB-OT-TAG-DEFAULT-LANGUAGE:CAPS">
+<ANCHOR id="HB-OT-TAG-DEFAULT-SCRIPT:CAPS" href="harfbuzz/harfbuzz-hb-ot-tag.html#HB-OT-TAG-DEFAULT-SCRIPT:CAPS">
+<ANCHOR id="harfbuzz-hb-ot-font" href="harfbuzz/harfbuzz-hb-ot-font.html">
+<ANCHOR id="harfbuzz-hb-ot-font.functions" href="harfbuzz/harfbuzz-hb-ot-font.html#harfbuzz-hb-ot-font.functions">
+<ANCHOR id="harfbuzz-hb-ot-font.object-hierarchy" href="harfbuzz/harfbuzz-hb-ot-font.html#harfbuzz-hb-ot-font.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-ot-font.description" href="harfbuzz/harfbuzz-hb-ot-font.html#harfbuzz-hb-ot-font.description">
+<ANCHOR id="harfbuzz-hb-ot-font.functions_details" href="harfbuzz/harfbuzz-hb-ot-font.html#harfbuzz-hb-ot-font.functions_details">
+<ANCHOR id="hb-ot-font-set-funcs" href="harfbuzz/harfbuzz-hb-ot-font.html#hb-ot-font-set-funcs">
+<ANCHOR id="harfbuzz-hb-ot-font.other_details" href="harfbuzz/harfbuzz-hb-ot-font.html#harfbuzz-hb-ot-font.other_details">
+<ANCHOR id="harfbuzz-hb-ot-shape" href="harfbuzz/harfbuzz-hb-ot-shape.html">
+<ANCHOR id="harfbuzz-hb-ot-shape.functions" href="harfbuzz/harfbuzz-hb-ot-shape.html#harfbuzz-hb-ot-shape.functions">
+<ANCHOR id="harfbuzz-hb-ot-shape.object-hierarchy" href="harfbuzz/harfbuzz-hb-ot-shape.html#harfbuzz-hb-ot-shape.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-ot-shape.description" href="harfbuzz/harfbuzz-hb-ot-shape.html#harfbuzz-hb-ot-shape.description">
+<ANCHOR id="harfbuzz-hb-ot-shape.functions_details" href="harfbuzz/harfbuzz-hb-ot-shape.html#harfbuzz-hb-ot-shape.functions_details">
+<ANCHOR id="hb-ot-shape-glyphs-closure" href="harfbuzz/harfbuzz-hb-ot-shape.html#hb-ot-shape-glyphs-closure">
+<ANCHOR id="harfbuzz-hb-ot-shape.other_details" href="harfbuzz/harfbuzz-hb-ot-shape.html#harfbuzz-hb-ot-shape.other_details">
+<ANCHOR id="harfbuzz-hb-shape-plan" href="harfbuzz/harfbuzz-hb-shape-plan.html">
+<ANCHOR id="harfbuzz-hb-shape-plan.functions" href="harfbuzz/harfbuzz-hb-shape-plan.html#harfbuzz-hb-shape-plan.functions">
+<ANCHOR id="hb-shape-plan-t" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-t">
+<ANCHOR id="harfbuzz-hb-shape-plan.other" href="harfbuzz/harfbuzz-hb-shape-plan.html#harfbuzz-hb-shape-plan.other">
+<ANCHOR id="harfbuzz-hb-shape-plan.object-hierarchy" href="harfbuzz/harfbuzz-hb-shape-plan.html#harfbuzz-hb-shape-plan.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-shape-plan.description" href="harfbuzz/harfbuzz-hb-shape-plan.html#harfbuzz-hb-shape-plan.description">
+<ANCHOR id="harfbuzz-hb-shape-plan.functions_details" href="harfbuzz/harfbuzz-hb-shape-plan.html#harfbuzz-hb-shape-plan.functions_details">
+<ANCHOR id="hb-shape-plan-create" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-create">
+<ANCHOR id="hb-shape-plan-create-cached" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-create-cached">
+<ANCHOR id="hb-shape-plan-destroy" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-destroy">
+<ANCHOR id="hb-shape-plan-execute" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-execute">
+<ANCHOR id="hb-shape-plan-get-empty" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-get-empty">
+<ANCHOR id="hb-shape-plan-get-shaper" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-get-shaper">
+<ANCHOR id="hb-shape-plan-get-user-data" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-get-user-data">
+<ANCHOR id="hb-shape-plan-reference" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-reference">
+<ANCHOR id="hb-shape-plan-set-user-data" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-set-user-data">
+<ANCHOR id="harfbuzz-hb-shape-plan.other_details" href="harfbuzz/harfbuzz-hb-shape-plan.html#harfbuzz-hb-shape-plan.other_details">
+<ANCHOR id="hb-shape-plan-t" href="harfbuzz/harfbuzz-hb-shape-plan.html#hb-shape-plan-t">
+<ANCHOR id="harfbuzz-hb-glib" href="harfbuzz/harfbuzz-hb-glib.html">
+<ANCHOR id="harfbuzz-hb-glib.functions" href="harfbuzz/harfbuzz-hb-glib.html#harfbuzz-hb-glib.functions">
+<ANCHOR id="harfbuzz-hb-glib.object-hierarchy" href="harfbuzz/harfbuzz-hb-glib.html#harfbuzz-hb-glib.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-glib.description" href="harfbuzz/harfbuzz-hb-glib.html#harfbuzz-hb-glib.description">
+<ANCHOR id="harfbuzz-hb-glib.functions_details" href="harfbuzz/harfbuzz-hb-glib.html#harfbuzz-hb-glib.functions_details">
+<ANCHOR id="hb-glib-get-unicode-funcs" href="harfbuzz/harfbuzz-hb-glib.html#hb-glib-get-unicode-funcs">
+<ANCHOR id="hb-glib-script-from-script" href="harfbuzz/harfbuzz-hb-glib.html#hb-glib-script-from-script">
+<ANCHOR id="hb-glib-script-to-script" href="harfbuzz/harfbuzz-hb-glib.html#hb-glib-script-to-script">
+<ANCHOR id="hb-glib-blob-create" href="harfbuzz/harfbuzz-hb-glib.html#hb-glib-blob-create">
+<ANCHOR id="harfbuzz-hb-glib.other_details" href="harfbuzz/harfbuzz-hb-glib.html#harfbuzz-hb-glib.other_details">
+<ANCHOR id="harfbuzz-hb-icu" href="harfbuzz/harfbuzz-hb-icu.html">
+<ANCHOR id="harfbuzz-hb-icu.functions" href="harfbuzz/harfbuzz-hb-icu.html#harfbuzz-hb-icu.functions">
+<ANCHOR id="harfbuzz-hb-icu.object-hierarchy" href="harfbuzz/harfbuzz-hb-icu.html#harfbuzz-hb-icu.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-icu.description" href="harfbuzz/harfbuzz-hb-icu.html#harfbuzz-hb-icu.description">
+<ANCHOR id="harfbuzz-hb-icu.functions_details" href="harfbuzz/harfbuzz-hb-icu.html#harfbuzz-hb-icu.functions_details">
+<ANCHOR id="hb-icu-get-unicode-funcs" href="harfbuzz/harfbuzz-hb-icu.html#hb-icu-get-unicode-funcs">
+<ANCHOR id="hb-icu-script-from-script" href="harfbuzz/harfbuzz-hb-icu.html#hb-icu-script-from-script">
+<ANCHOR id="hb-icu-script-to-script" href="harfbuzz/harfbuzz-hb-icu.html#hb-icu-script-to-script">
+<ANCHOR id="harfbuzz-hb-icu.other_details" href="harfbuzz/harfbuzz-hb-icu.html#harfbuzz-hb-icu.other_details">
+<ANCHOR id="harfbuzz-hb-ft" href="harfbuzz/harfbuzz-hb-ft.html">
+<ANCHOR id="harfbuzz-hb-ft.functions" href="harfbuzz/harfbuzz-hb-ft.html#harfbuzz-hb-ft.functions">
+<ANCHOR id="harfbuzz-hb-ft.object-hierarchy" href="harfbuzz/harfbuzz-hb-ft.html#harfbuzz-hb-ft.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-ft.description" href="harfbuzz/harfbuzz-hb-ft.html#harfbuzz-hb-ft.description">
+<ANCHOR id="harfbuzz-hb-ft.functions_details" href="harfbuzz/harfbuzz-hb-ft.html#harfbuzz-hb-ft.functions_details">
+<ANCHOR id="hb-ft-face-create" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-face-create">
+<ANCHOR id="hb-ft-face-create-cached" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-face-create-cached">
+<ANCHOR id="hb-ft-face-create-referenced" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-face-create-referenced">
+<ANCHOR id="hb-ft-font-create" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-font-create">
+<ANCHOR id="hb-ft-font-create-referenced" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-font-create-referenced">
+<ANCHOR id="hb-ft-font-get-face" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-font-get-face">
+<ANCHOR id="hb-ft-font-set-load-flags" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-font-set-load-flags">
+<ANCHOR id="hb-ft-font-get-load-flags" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-font-get-load-flags">
+<ANCHOR id="hb-ft-font-set-funcs" href="harfbuzz/harfbuzz-hb-ft.html#hb-ft-font-set-funcs">
+<ANCHOR id="harfbuzz-hb-ft.other_details" href="harfbuzz/harfbuzz-hb-ft.html#harfbuzz-hb-ft.other_details">
+<ANCHOR id="harfbuzz-hb-graphite2" href="harfbuzz/harfbuzz-hb-graphite2.html">
+<ANCHOR id="harfbuzz-hb-graphite2.functions" href="harfbuzz/harfbuzz-hb-graphite2.html#harfbuzz-hb-graphite2.functions">
+<ANCHOR id="harfbuzz-hb-graphite2.other" href="harfbuzz/harfbuzz-hb-graphite2.html#harfbuzz-hb-graphite2.other">
+<ANCHOR id="harfbuzz-hb-graphite2.object-hierarchy" href="harfbuzz/harfbuzz-hb-graphite2.html#harfbuzz-hb-graphite2.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-graphite2.description" href="harfbuzz/harfbuzz-hb-graphite2.html#harfbuzz-hb-graphite2.description">
+<ANCHOR id="harfbuzz-hb-graphite2.functions_details" href="harfbuzz/harfbuzz-hb-graphite2.html#harfbuzz-hb-graphite2.functions_details">
+<ANCHOR id="hb-graphite2-face-get-gr-face" href="harfbuzz/harfbuzz-hb-graphite2.html#hb-graphite2-face-get-gr-face">
+<ANCHOR id="hb-graphite2-font-get-gr-font" href="harfbuzz/harfbuzz-hb-graphite2.html#hb-graphite2-font-get-gr-font">
+<ANCHOR id="harfbuzz-hb-graphite2.other_details" href="harfbuzz/harfbuzz-hb-graphite2.html#harfbuzz-hb-graphite2.other_details">
+<ANCHOR id="HB-GRAPHITE2-TAG-SILF:CAPS" href="harfbuzz/harfbuzz-hb-graphite2.html#HB-GRAPHITE2-TAG-SILF:CAPS">
+<ANCHOR id="harfbuzz-hb-uniscribe" href="harfbuzz/harfbuzz-hb-uniscribe.html">
+<ANCHOR id="harfbuzz-hb-uniscribe.functions" href="harfbuzz/harfbuzz-hb-uniscribe.html#harfbuzz-hb-uniscribe.functions">
+<ANCHOR id="harfbuzz-hb-uniscribe.object-hierarchy" href="harfbuzz/harfbuzz-hb-uniscribe.html#harfbuzz-hb-uniscribe.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-uniscribe.description" href="harfbuzz/harfbuzz-hb-uniscribe.html#harfbuzz-hb-uniscribe.description">
+<ANCHOR id="harfbuzz-hb-uniscribe.functions_details" href="harfbuzz/harfbuzz-hb-uniscribe.html#harfbuzz-hb-uniscribe.functions_details">
+<ANCHOR id="hb-uniscribe-font-get-hfont" href="harfbuzz/harfbuzz-hb-uniscribe.html#hb-uniscribe-font-get-hfont">
+<ANCHOR id="hb-uniscribe-font-get-logfontw" href="harfbuzz/harfbuzz-hb-uniscribe.html#hb-uniscribe-font-get-logfontw">
+<ANCHOR id="harfbuzz-hb-uniscribe.other_details" href="harfbuzz/harfbuzz-hb-uniscribe.html#harfbuzz-hb-uniscribe.other_details">
+<ANCHOR id="harfbuzz-hb-coretext" href="harfbuzz/harfbuzz-hb-coretext.html">
+<ANCHOR id="harfbuzz-hb-coretext.functions" href="harfbuzz/harfbuzz-hb-coretext.html#harfbuzz-hb-coretext.functions">
+<ANCHOR id="harfbuzz-hb-coretext.other" href="harfbuzz/harfbuzz-hb-coretext.html#harfbuzz-hb-coretext.other">
+<ANCHOR id="harfbuzz-hb-coretext.object-hierarchy" href="harfbuzz/harfbuzz-hb-coretext.html#harfbuzz-hb-coretext.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-coretext.description" href="harfbuzz/harfbuzz-hb-coretext.html#harfbuzz-hb-coretext.description">
+<ANCHOR id="harfbuzz-hb-coretext.functions_details" href="harfbuzz/harfbuzz-hb-coretext.html#harfbuzz-hb-coretext.functions_details">
+<ANCHOR id="hb-coretext-face-create" href="harfbuzz/harfbuzz-hb-coretext.html#hb-coretext-face-create">
+<ANCHOR id="hb-coretext-face-get-cg-font" href="harfbuzz/harfbuzz-hb-coretext.html#hb-coretext-face-get-cg-font">
+<ANCHOR id="hb-coretext-font-get-ct-font" href="harfbuzz/harfbuzz-hb-coretext.html#hb-coretext-font-get-ct-font">
+<ANCHOR id="harfbuzz-hb-coretext.other_details" href="harfbuzz/harfbuzz-hb-coretext.html#harfbuzz-hb-coretext.other_details">
+<ANCHOR id="HB-CORETEXT-TAG-MORT:CAPS" href="harfbuzz/harfbuzz-hb-coretext.html#HB-CORETEXT-TAG-MORT:CAPS">
+<ANCHOR id="HB-CORETEXT-TAG-MORX:CAPS" href="harfbuzz/harfbuzz-hb-coretext.html#HB-CORETEXT-TAG-MORX:CAPS">
+<ANCHOR id="harfbuzz-hb-gobject" href="harfbuzz/harfbuzz-hb-gobject.html">
+<ANCHOR id="harfbuzz-hb-gobject.functions" href="harfbuzz/harfbuzz-hb-gobject.html#harfbuzz-hb-gobject.functions">
+<ANCHOR id="harfbuzz-hb-gobject.object-hierarchy" href="harfbuzz/harfbuzz-hb-gobject.html#harfbuzz-hb-gobject.object-hierarchy">
+<ANCHOR id="harfbuzz-hb-gobject.description" href="harfbuzz/harfbuzz-hb-gobject.html#harfbuzz-hb-gobject.description">
+<ANCHOR id="harfbuzz-hb-gobject.functions_details" href="harfbuzz/harfbuzz-hb-gobject.html#harfbuzz-hb-gobject.functions_details">
+<ANCHOR id="HB-GOBJECT-TYPE-BLOB:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BLOB:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-BUFFER:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CONTENT-TYPE:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-FLAGS:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FLAGS:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-SERIALIZE-FORMAT:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-DIRECTION:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-DIRECTION:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-FACE:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FACE:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-FONT:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-FONT-FUNCS:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FONT-FUNCS:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-MEMORY-MODE:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-MEMORY-MODE:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-OT-LAYOUT-GLYPH-CLASS:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-SCRIPT:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SCRIPT:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SHAPE-PLAN:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-COMBINING-CLASS:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-FUNCS:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-UNICODE-GENERAL-CATEGORY:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-BUFFER-CLUSTER-LEVEL:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-FEATURE:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-FEATURE:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-GLYPH-INFO:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-INFO:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-GLYPH-POSITION:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SEGMENT-PROPERTIES:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-SET:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-SET:CAPS">
+<ANCHOR id="HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS" href="harfbuzz/harfbuzz-hb-gobject.html#HB-GOBJECT-TYPE-USER-DATA-KEY:CAPS">
+<ANCHOR id="hb-gobject-blob-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-blob-get-type">
+<ANCHOR id="hb-gobject-buffer-content-type-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-buffer-content-type-get-type">
+<ANCHOR id="hb-gobject-buffer-flags-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-buffer-flags-get-type">
+<ANCHOR id="hb-gobject-buffer-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-buffer-get-type">
+<ANCHOR id="hb-gobject-buffer-serialize-flags-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-flags-get-type">
+<ANCHOR id="hb-gobject-buffer-serialize-format-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-buffer-serialize-format-get-type">
+<ANCHOR id="hb-gobject-direction-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-direction-get-type">
+<ANCHOR id="hb-gobject-face-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-face-get-type">
+<ANCHOR id="hb-gobject-font-funcs-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-font-funcs-get-type">
+<ANCHOR id="hb-gobject-font-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-font-get-type">
+<ANCHOR id="hb-gobject-memory-mode-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-memory-mode-get-type">
+<ANCHOR id="hb-gobject-ot-layout-glyph-class-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-ot-layout-glyph-class-get-type">
+<ANCHOR id="hb-gobject-script-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-script-get-type">
+<ANCHOR id="hb-gobject-shape-plan-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-shape-plan-get-type">
+<ANCHOR id="hb-gobject-unicode-combining-class-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-unicode-combining-class-get-type">
+<ANCHOR id="hb-gobject-unicode-funcs-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-unicode-funcs-get-type">
+<ANCHOR id="hb-gobject-unicode-general-category-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-unicode-general-category-get-type">
+<ANCHOR id="hb-gobject-buffer-cluster-level-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-buffer-cluster-level-get-type">
+<ANCHOR id="hb-gobject-feature-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-feature-get-type">
+<ANCHOR id="hb-gobject-glyph-info-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-glyph-info-get-type">
+<ANCHOR id="hb-gobject-glyph-position-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-glyph-position-get-type">
+<ANCHOR id="hb-gobject-segment-properties-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-segment-properties-get-type">
+<ANCHOR id="hb-gobject-set-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-set-get-type">
+<ANCHOR id="hb-gobject-user-data-key-get-type" href="harfbuzz/harfbuzz-hb-gobject.html#hb-gobject-user-data-key-get-type">
+<ANCHOR id="harfbuzz-hb-gobject.other_details" href="harfbuzz/harfbuzz-hb-gobject.html#harfbuzz-hb-gobject.other_details">
+<ANCHOR id="annotation-glossterm-allow-none" href="harfbuzz/annotation-glossary.html#annotation-glossterm-allow-none">
+<ANCHOR id="annotation-glossterm-array" href="harfbuzz/annotation-glossary.html#annotation-glossterm-array">
+<ANCHOR id="annotation-glossterm-closure" href="harfbuzz/annotation-glossary.html#annotation-glossterm-closure">
+<ANCHOR id="annotation-glossterm-destroy" href="harfbuzz/annotation-glossary.html#annotation-glossterm-destroy">
+<ANCHOR id="annotation-glossterm-element-type" href="harfbuzz/annotation-glossary.html#annotation-glossterm-element-type">
+<ANCHOR id="annotation-glossterm-inout" href="harfbuzz/annotation-glossary.html#annotation-glossterm-inout">
+<ANCHOR id="annotation-glossterm-out" href="harfbuzz/annotation-glossary.html#annotation-glossterm-out">
+<ANCHOR id="annotation-glossterm-out caller-allocates" href="harfbuzz/annotation-glossary.html#annotation-glossterm-out caller-allocates">
+<ANCHOR id="annotation-glossterm-scope notified" href="harfbuzz/annotation-glossary.html#annotation-glossterm-scope notified">
+<ANCHOR id="annotation-glossterm-transfer full" href="harfbuzz/annotation-glossary.html#annotation-glossterm-transfer full">
+<ANCHOR id="annotation-glossterm-transfer none" href="harfbuzz/annotation-glossary.html#annotation-glossterm-transfer none">
index 10017eb..592e727 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Install Harfbuzz: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Install Harfbuzz</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt01.html" title="Part I. User's manual">
 <link rel="prev" href="why-is-it-called-harfbuzz.html" title="Why is it called Harfbuzz?">
 <link rel="next" href="building.html" title="Building">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -54,6 +54,7 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 3269393..9b8005b 100644 (file)
Binary files a/docs/html/left-insensitive.png and b/docs/html/left-insensitive.png differ
index 2abde03..c518641 100644 (file)
Binary files a/docs/html/left.png and b/docs/html/left.png differ
index 0dff3cc..e8659ae 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Object Hierarchy: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Object Hierarchy</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt02.html" title="Part II. Reference manual">
 <link rel="prev" href="harfbuzz-hb-gobject.html" title="hb-gobject">
 <link rel="next" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -23,7 +23,7 @@
 <div class="titlepage"><div><div><h2 class="title">
 <a name="object-tree"></a>Object Hierarchy</h2></div></div></div>
 <pre class="screen">
-    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
+    GBoxed
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-hb-blob.html#hb-blob-t">hb_blob_t</a>
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-Buffers.html#hb-buffer-t">hb_buffer_t</a>
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-hb-face.html#hb-face-t">hb_face_t</a>
@@ -37,7 +37,7 @@
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-hb-shape-plan.html#hb-shape-plan-t">hb_shape_plan_t</a>
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-funcs-t">hb_unicode_funcs_t</a>
     <span class="lineart">╰──</span> <a class="link" href="harfbuzz-hb-common.html#hb-user-data-key-t">hb_user_data_key_t</a>
-    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
+    GEnum
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-Buffers.html#hb-buffer-cluster-level-t" title="enum hb_buffer_cluster_level_t">hb_buffer_cluster_level_t</a>
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-Buffers.html#hb-buffer-content-type-t" title="enum hb_buffer_content_type_t">hb_buffer_content_type_t</a>
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-format-t" title="enum hb_buffer_serialize_format_t">hb_buffer_serialize_format_t</a>
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-hb-common.html#hb-script-t" title="enum hb_script_t">hb_script_t</a>
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-combining-class-t" title="enum hb_unicode_combining_class_t">hb_unicode_combining_class_t</a>
     <span class="lineart">╰──</span> <a class="link" href="harfbuzz-hb-unicode.html#hb-unicode-general-category-t" title="enum hb_unicode_general_category_t">hb_unicode_general_category_t</a>
-    <a href="/home/behdad/.local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GFlags</a>
+    GFlags
     <span class="lineart">├──</span> <a class="link" href="harfbuzz-Buffers.html#hb-buffer-flags-t" title="enum hb_buffer_flags_t">hb_buffer_flags_t</a>
     <span class="lineart">╰──</span> <a class="link" href="harfbuzz-Buffers.html#hb-buffer-serialize-flags-t" title="enum hb_buffer_serialize_flags_t">hb_buffer_serialize_flags_t</a>
 </pre>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 8ab4e97..a114b5e 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Plans and caching: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Plans and caching</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
 <link rel="prev" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
 <link rel="next" href="pt02.html" title="Part II. Reference manual">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="shaping-and-shape-plans.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -26,6 +26,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index e49ad58..cf1d4dd 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part I. User's manual: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Part I. User's manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="index.html" title="HarfBuzz Manual">
 <link rel="prev" href="index.html" title="HarfBuzz Manual">
 <link rel="next" href="what-is-harfbuzz.html" title="What is Harfbuzz?">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
@@ -70,6 +70,7 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index f5580c5..c076838 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Part II. Reference manual: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Part II. Reference manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="index.html" title="HarfBuzz Manual">
 <link rel="prev" href="plans-and-caching.html" title="Plans and caching">
 <link rel="next" href="ch07.html" title="Harfbuzz API">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
@@ -24,7 +24,7 @@
 <div><h1 class="title">
 <a name="id-1.3"></a>Part II. Reference manual</h1></div>
 <div><p class="releaseinfo">
-        This document is for HarfBuzz 1.2.7
+        This document is for HarfBuzz 1.3.0
 .
         
       </p></div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 4c95785..f999f00 100644 (file)
Binary files a/docs/html/right-insensitive.png and b/docs/html/right-insensitive.png differ
index 76260ec..78f5875 100644 (file)
Binary files a/docs/html/right.png and b/docs/html/right.png differ
index 0c1cc60..05dfab5 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Setting buffer properties: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Setting buffer properties</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
 <link rel="prev" href="adding-text-to-the-buffer.html" title="Adding text to the buffer">
 <link rel="next" href="what-about-the-other-scripts.html" title="What about the other scripts?">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="buffers-language-script-and-direction.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -26,6 +26,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 04bffbb..c4e10d9 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Shaping and shape plans: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Shaping and shape plans</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt01.html" title="Part I. User's manual">
 <link rel="prev" href="using-your-own-font-functions.html" title="Using your own font functions">
 <link rel="next" href="plans-and-caching.html" title="Plans and caching">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -34,6 +34,7 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 3675420..705a5c9 100644 (file)
@@ -30,6 +30,127 @@ body
   vertical-align: top;
 }
 
+@media screen {
+  sup a.footnote
+  {
+    position: relative;
+    top: 0em ! important;
+  }
+  /* this is needed so that the local anchors are displayed below the naviagtion */
+  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+  {
+    display: inline-block;
+    position: relative;
+    top:-5em;
+  }
+  /* this seems to be a bug in the xsl style sheets when generating indexes */
+  div.index div.index
+  {
+    top: 0em;
+  }
+  /* make space for the fixed navigation bar and add space at the bottom so that
+   * link targets appear somewhat close to top
+   */
+  body
+  {
+    padding-top: 5em;
+    padding-bottom: 500px;
+    max-width: 60em;
+  }
+  p
+  {
+    max-width: 60em;
+  }
+  /* style and size the navigation bar */
+  table.navigation#top
+  {
+    position: fixed;
+    background: #e2e2e2;
+    border-bottom: solid 1px #babdb6;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+    z-index: 10;
+  }
+  .navigation a, .navigation a:visited
+  {
+    /* tango:sky blue 3 */
+    color: #204a87;
+  }
+  .navigation a:hover
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+  }
+  td.shortcuts
+  {
+    /* tango:sky blue 2 */
+    color: #3465a4;
+    font-size: 80%;
+    white-space: nowrap;
+  }
+  td.shortcuts .dim
+  {
+    color: #babdb6;
+  }
+}
+@media screen and (min-width: 60em) {
+  /* screen larger than 60em */
+  body { margin: auto; }
+}
+@media screen and (max-width: 60em) {
+  /* screen less than 60em */
+  #nav_hierarchy { display: none; }
+  #nav_interfaces { display: none; }
+  #nav_prerequisites { display: none; }
+  #nav_derived_interfaces { display: none; }
+  #nav_implementations { display: none; }
+  #nav_child_properties { display: none; }
+  #nav_style_properties { display: none; }
+  #nav_index { display: none; }
+  #nav_glossary { display: none; }
+  .gallery_image { display: none; }
+  .property_flags { display: none; }
+  .signal_flags { display: none; }
+  .parameter_annotations { display: none; }
+  .enum_member_annotations { display: none; }
+  .struct_member_annotations { display: none; }
+  .union_member_annotations { display: none; }
+  /* now that a column is hidden, optimize space */
+  col.parameters_name { width: auto; }
+  col.parameters_description { width: auto; }
+  col.struct_members_name { width: auto; }
+  col.struct_members_description { width: auto; }
+  col.enum_members_name { width: auto; }
+  col.enum_members_description { width: auto; }
+  col.union_members_name { width: auto; }
+  col.union_members_description { width: auto; }
+}
+@media print {
+  table.navigation {
+    visibility: collapse;
+    display: none;
+  }
+  div.titlepage table.navigation {
+    visibility: visible;
+    display: table;
+    background: #e2e2e2;
+    border: solid 1px #babdb6;
+    margin-top: 0;
+    margin-bottom: 0;
+    top: 0;
+    left: 0;
+    height: 3em;
+  }
+}
+
+.navigation .title
+{
+  font-size: 120%;
+}
+
 div.gallery-float
 {
   float: left;
@@ -60,7 +181,7 @@ a:hover
 div.informaltable table
 {
   border-collapse: separate;
-  border-spacing: 1em 0.3em;
+  border-spacing: 20px 3px;
   border: none;
 }
 
@@ -118,11 +239,6 @@ div.informaltable table td, div.informaltable table th
  color: #729fcf;
 }
 
-td p
-{
-  margin: 0.25em;
-}
-
 div.table table
 {
   border-collapse: collapse;
@@ -148,8 +264,6 @@ div.table table th
 h4
 {
   color: #555753;
-  margin-top: 1em;
-  margin-bottom: 1em;
 }
 
 hr
@@ -168,16 +282,17 @@ dl.toc dt
   padding-bottom: 0.25em;
 }
 
-dl.toc > dt
+dl.toc > dd > dl > dt
 {
   padding-top: 0.25em;
   padding-bottom: 0.25em;
-  font-weight: bold;
 }
 
-dl.toc > dl
+dl.toc > dt
 {
+  padding-top: 1em;
   padding-bottom: 0.5em;
+  font-weight: bold;
 }
 
 .parameter
@@ -289,28 +404,21 @@ h2 .extralinks, h3 .extralinks
   font-weight: normal;
 }
 
-acronym,abbr 
-{
-  border-bottom: 1px dotted gray;
-}
-
 /* code listings */
 
-.listing_code .programlisting .normal,
-.listing_code .programlisting .normal a,
-.listing_code .programlisting .number,
-.listing_code .programlisting .cbracket,
-.listing_code .programlisting .symbol     { color: #555753; }
-.listing_code .programlisting .comment,
+.listing_code .programlisting .cbracket   { color: #a40000; } /* tango: scarlet red 3 */
+.listing_code .programlisting .comment    { color: #a1a39d; } /* tango: aluminium 4 */
+.listing_code .programlisting .function   { color: #000000; font-weight: bold; }
+.listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */
+.listing_code .programlisting .keyword    { color: #4e9a06; } /* tango: chameleon 3  */
 .listing_code .programlisting .linenum    { color: #babdb6; } /* tango: aluminium 3 */
-.listing_code .programlisting .function,
-.listing_code .programlisting .function a,
+.listing_code .programlisting .normal     { color: #000000; }
+.listing_code .programlisting .number     { color: #75507b; } /* tango: plum 2 */
 .listing_code .programlisting .preproc    { color: #204a87; } /* tango: sky blue 3  */
-.listing_code .programlisting .string     { color: #ad7fa8; } /* tango: plum */
-.listing_code .programlisting .keyword,
-.listing_code .programlisting .usertype,
-.listing_code .programlisting .type,
-.listing_code .programlisting .type a     { color: #4e9a06; } /* tango: chameleon 3  */
+.listing_code .programlisting .string     { color: #c17d11; } /* tango: chocolate 2 */
+.listing_code .programlisting .type       { color: #000000; }
+.listing_code .programlisting .type a     { color: #11326b; } /* tango: sky blue 4 */
+.listing_code .programlisting .symbol     { color: #ce5c00; } /* tango: orange 3 */
 
 .listing_frame {
   /* tango:sky blue 1 */
@@ -325,6 +433,11 @@ acronym,abbr
   padding: 0.5em;
 }
 .listing_lines {
+  /* this just adds visual clutter and
+     takes precious room from small screens */
+  display: none;
+}
+.listing_lines {
   /* tango:sky blue 0.5 */
   background: #a6c5e3;
   background: rgba(114, 159, 207, 0.2);
@@ -346,134 +459,3 @@ acronym,abbr
   margin: 0px;
 }
 
-@media screen {
-  /* these have a <sup> as a first child, but since there are no parent selectors
-   * we can't use that. */
-  a.footnote
-  {
-    position: relative;
-    top: 0em ! important;
-  }
-  /* this is needed so that the local anchors are displayed below the naviagtion */
-  div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
-  {
-    display: inline-block;
-    position: relative;
-    top:-5em;
-  }
-  /* this seems to be a bug in the xsl style sheets when generating indexes */
-  div.index div.index
-  {
-    top: 0em;
-  }
-  /* make space for the fixed navigation bar and add space at the bottom so that
-   * link targets appear somewhat close to top
-   */
-  body
-  {
-    padding-top: 2.5em;
-    padding-bottom: 500px;
-    max-width: 60em;
-  }
-  p
-  {
-    max-width: 60em;
-  }
-  /* style and size the navigation bar */
-  table.navigation#top
-  {
-    position: fixed;
-    background: #e2e2e2;
-    border-bottom: solid 1px #babdb6;
-    border-spacing: 5px;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    z-index: 10;
-  }
-  table.navigation#top td
-  {
-    padding-left: 6px;
-    padding-right: 6px;
-  }
-  .navigation a, .navigation a:visited
-  {
-    /* tango:sky blue 3 */
-    color: #204a87;
-  }
-  .navigation a:hover
-  {
-    /* tango:sky blue 2 */
-    color: #3465a4;
-  }
-  td.shortcuts
-  {
-    /* tango:sky blue 2 */
-    color: #3465a4;
-    font-size: 80%;
-    white-space: nowrap;
-  }
-  td.shortcuts .dim
-  {
-    color: #babdb6;
-  }
-  .navigation .title
-  {
-    font-size: 80%;
-    max-width: none;
-    margin: 0px;
-    font-weight: normal;
-  }
-}
-@media screen and (min-width: 60em) {
-  /* screen larger than 60em */
-  body { margin: auto; }
-}
-@media screen and (max-width: 60em) {
-  /* screen less than 60em */
-  #nav_hierarchy { display: none; }
-  #nav_interfaces { display: none; }
-  #nav_prerequisites { display: none; }
-  #nav_derived_interfaces { display: none; }
-  #nav_implementations { display: none; }
-  #nav_child_properties { display: none; }
-  #nav_style_properties { display: none; }
-  #nav_index { display: none; }
-  #nav_glossary { display: none; }
-  .gallery_image { display: none; }
-  .property_flags { display: none; }
-  .signal_flags { display: none; }
-  .parameter_annotations { display: none; }
-  .enum_member_annotations { display: none; }
-  .struct_member_annotations { display: none; }
-  .union_member_annotations { display: none; }
-  /* now that a column is hidden, optimize space */
-  col.parameters_name { width: auto; }
-  col.parameters_description { width: auto; }
-  col.struct_members_name { width: auto; }
-  col.struct_members_description { width: auto; }
-  col.enum_members_name { width: auto; }
-  col.enum_members_description { width: auto; }
-  col.union_members_name { width: auto; }
-  col.union_members_description { width: auto; }
-  .listing_lines { display: none; }
-}
-@media print {
-  table.navigation {
-    visibility: collapse;
-    display: none;
-  }
-  div.titlepage table.navigation {
-    visibility: visible;
-    display: table;
-    background: #e2e2e2;
-    border: solid 1px #babdb6;
-    margin-top: 0;
-    margin-bottom: 0;
-    top: 0;
-    left: 0;
-    height: 3em;
-  }
-}
-
index f404986..bda3ce2 100644 (file)
Binary files a/docs/html/up-insensitive.png and b/docs/html/up-insensitive.png differ
index 80b4b37..af46b2a 100644 (file)
Binary files a/docs/html/up.png and b/docs/html/up.png differ
index 1980ba8..7098548 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Using Harfbuzz's native OpenType implementation: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Using Harfbuzz's native OpenType implementation</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="fonts-and-faces.html" title="Fonts and faces">
 <link rel="prev" href="fonts-and-faces.html" title="Fonts and faces">
 <link rel="next" href="using-your-own-font-functions.html" title="Using your own font functions">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="fonts-and-faces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -26,6 +26,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index b1e94d8..e94a5af 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Using your own font functions: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Using your own font functions</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="fonts-and-faces.html" title="Fonts and faces">
 <link rel="prev" href="using-harfbuzzs-native-opentype-implementation.html" title="Using Harfbuzz's native OpenType implementation">
 <link rel="next" href="shaping-and-shape-plans.html" title="Shaping and shape plans">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="fonts-and-faces.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -26,6 +26,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index 0550e73..be3ab34 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>What about the other scripts?: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: What about the other scripts?</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="buffers-language-script-and-direction.html" title="Buffers, language, script and direction">
 <link rel="prev" href="setting-buffer-properties.html" title="Setting buffer properties">
 <link rel="next" href="customizing-unicode-functions.html" title="Customizing Unicode functions">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="buffers-language-script-and-direction.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -26,6 +26,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index d791d47..82f6fb1 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>What is Harfbuzz?: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: What is Harfbuzz?</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="pt01.html" title="Part I. User's manual">
 <link rel="prev" href="pt01.html" title="Part I. User's manual">
 <link rel="next" href="why-is-it-called-harfbuzz.html" title="Why is it called Harfbuzz?">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index afe00b0..01781da 100644 (file)
@@ -2,17 +2,17 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Why is it called Harfbuzz?: HarfBuzz Manual</title>
+<title>HarfBuzz Manual: Why is it called Harfbuzz?</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="HarfBuzz Manual">
 <link rel="up" href="what-is-harfbuzz.html" title="What is Harfbuzz?">
 <link rel="prev" href="what-is-harfbuzz.html" title="What is Harfbuzz?">
 <link rel="next" href="install-harfbuzz.html" title="Install Harfbuzz">
-<meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.20 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="what-is-harfbuzz.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
@@ -33,6 +33,7 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.24.1</div>
+<hr>
+          Generated by GTK-Doc V1.20</div>
 </body>
 </html>
\ No newline at end of file
index c04c650..f0bb29e 100644 (file)
@@ -1 +1 @@
-1.2.7
+1.3.0
index c055163..3016cd0 100755 (executable)
@@ -3,10 +3,32 @@
 import sys
 
 if len (sys.argv) != 4:
-       print >>sys.stderr, "usage: ./gen-indic-table.py IndicSyllabicCategory.txt IndicMatraCategory.txt Blocks.txt"
+       print >>sys.stderr, "usage: ./gen-indic-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt Blocks.txt"
        sys.exit (1)
 
-BLACKLISTED_BLOCKS = ["Thai", "Lao", "Tibetan"]
+ALLOWED_SINGLES = [0x00A0, 0x25CC]
+ALLOWED_BLOCKS = [
+       'Basic Latin',
+       'Latin-1 Supplement',
+       'Devanagari',
+       'Bengali',
+       'Gurmukhi',
+       'Gujarati',
+       'Oriya',
+       'Tamil',
+       'Telugu',
+       'Kannada',
+       'Malayalam',
+       'Sinhala',
+       'Myanmar',
+       'Khmer',
+       'Vedic Extensions',
+       'General Punctuation',
+       'Superscripts and Subscripts',
+       'Devanagari Extended',
+       'Myanmar Extended-B',
+       'Myanmar Extended-A',
+]
 
 files = [file (x) for x in sys.argv[1:]]
 
@@ -50,7 +72,7 @@ for i,d in enumerate (data):
                if not u in combined:
                        combined[u] = list (defaults)
                combined[u][i] = v
-combined = {k:v for k,v in combined.items() if v[2] not in BLACKLISTED_BLOCKS}
+combined = {k:v for k,v in combined.items() if k in ALLOWED_SINGLES or v[2] in ALLOWED_BLOCKS}
 data = combined
 del combined
 num = len (data)
@@ -61,7 +83,7 @@ for u in [0x17CD, 0x17CE, 0x17CF, 0x17D0, 0x17D3]:
 
 # Move the outliers NO-BREAK SPACE and DOTTED CIRCLE out
 singles = {}
-for u in [0x00A0, 0x25CC]:
+for u in ALLOWED_SINGLES:
        singles[u] = data[u]
        del data[u]
 
@@ -69,7 +91,7 @@ print "/* == Start of generated table == */"
 print "/*"
 print " * The following table is generated by running:"
 print " *"
-print " *   ./gen-indic-table.py IndicSyllabicCategory.txt IndicMatraCategory.txt Blocks.txt"
+print " *   ./gen-indic-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt Blocks.txt"
 print " *"
 print " * on files with these headers:"
 print " *"
index be04e4b..a922c92 100755 (executable)
@@ -144,36 +144,38 @@ globals().update(property_values)
 
 def is_BASE(U, UISC, UGC):
        return (UISC in [Number, Consonant, Consonant_Head_Letter,
-                       #SPEC-OUTDATED Consonant_Placeholder,
-                       Tone_Letter] or
+                       #SPEC-DRAFT Consonant_Placeholder,
+                       Tone_Letter,
+                       Vowel_Independent #SPEC-DRAFT
+                       ] or
                (UGC == Lo and UISC in [Avagraha, Bindu, Consonant_Final, Consonant_Medial,
                                        Consonant_Subjoined, Vowel, Vowel_Dependent]))
-def is_BASE_VOWEL(U, UISC, UGC):
-       return UISC == Vowel_Independent
 def is_BASE_IND(U, UISC, UGC):
-       #SPEC-BROKEN return (UISC in [Consonant_Dead, Modifying_Letter] or UGC == Po)
+       #SPEC-DRAFT return (UISC in [Consonant_Dead, Modifying_Letter] or UGC == Po)
        return (UISC in [Consonant_Dead, Modifying_Letter] or
-               (UGC == Po and not is_BASE_OTHER(U, UISC, UGC))) # for 104E
+               (UGC == Po and not U in [0x104E, 0x2022]) or
+               False # SPEC-DRAFT-OUTDATED! U == 0x002D
+               )
 def is_BASE_NUM(U, UISC, UGC):
        return UISC == Brahmi_Joining_Number
 def is_BASE_OTHER(U, UISC, UGC):
-       if UISC == Consonant_Placeholder: return True #SPEC-OUTDATED
-       return U in [0x00A0, 0x00D7, 0x2015, 0x2022, 0x25CC,
-                    0x25FB, 0x25FC, 0x25FD, 0x25FE]
+       if UISC == Consonant_Placeholder: return True #SPEC-DRAFT
+       #SPEC-DRAFT return U in [0x00A0, 0x00D7, 0x2015, 0x2022, 0x25CC, 0x25FB, 0x25FC, 0x25FD, 0x25FE]
+       return U in [0x2015, 0x2022, 0x25FB, 0x25FC, 0x25FD, 0x25FE]
 def is_CGJ(U, UISC, UGC):
        return U == 0x034F
 def is_CONS_FINAL(U, UISC, UGC):
        return ((UISC == Consonant_Final and UGC != Lo) or
                UISC == Consonant_Succeeding_Repha)
 def is_CONS_FINAL_MOD(U, UISC, UGC):
-       #SPEC-OUTDATED return  UISC in [Consonant_Final_Modifier, Syllable_Modifier]
+       #SPEC-DRAFT return  UISC in [Consonant_Final_Modifier, Syllable_Modifier]
        return  UISC == Syllable_Modifier
 def is_CONS_MED(U, UISC, UGC):
        return UISC == Consonant_Medial and UGC != Lo
 def is_CONS_MOD(U, UISC, UGC):
        return UISC in [Nukta, Gemination_Mark, Consonant_Killer]
 def is_CONS_SUB(U, UISC, UGC):
-       #SPEC-OUTDATED return UISC == Consonant_Subjoined
+       #SPEC-DRAFT return UISC == Consonant_Subjoined
        return UISC == Consonant_Subjoined and UGC != Lo
 def is_HALANT(U, UISC, UGC):
        return UISC in [Virama, Invisible_Stacker]
@@ -200,8 +202,8 @@ def is_REPHA(U, UISC, UGC):
        #SPEC-OUTDATED hack to categorize Consonant_With_Stacker and Consonant_Prefixed
        return UISC in [Consonant_Preceding_Repha, Consonant_With_Stacker, Consonant_Prefixed]
 def is_SYM(U, UISC, UGC):
-       if U == 0x25CC: return False #SPEC-OUTDATED
-       #SPEC-OUTDATED return UGC in [So, Sc] or UISC == Symbol_Letter
+       if U == 0x25CC: return False #SPEC-DRAFT
+       #SPEC-DRAFT return UGC in [So, Sc] or UISC == Symbol_Letter
        return UGC in [So, Sc]
 def is_SYM_MOD(U, UISC, UGC):
        return U in [0x1B6B, 0x1B6C, 0x1B6D, 0x1B6E, 0x1B6F, 0x1B70, 0x1B71, 0x1B72, 0x1B73]
@@ -216,7 +218,6 @@ def is_VOWEL_MOD(U, UISC, UGC):
 
 use_mapping = {
        'B':    is_BASE,
-       'IV':   is_BASE_VOWEL,
        'IND':  is_BASE_IND,
        'N':    is_BASE_NUM,
        'GB':   is_BASE_OTHER,
index 406db9c..3940a3d 100644 (file)
@@ -52,7 +52,7 @@
  *
  * Checks the equality of two #hb_segment_properties_t's.
  *
- * Return value: (transfer full):
+ * Return value:
  * %true if all properties of @a equal those of @b, false otherwise.
  *
  * Since: 0.9.7
@@ -183,6 +183,12 @@ hb_buffer_t::shift_forward (unsigned int count)
   if (unlikely (!ensure (len + count))) return false;
 
   memmove (info + idx + count, info + idx, (len - idx) * sizeof (info[0]));
+  if (idx + count > len)
+  {
+    /* Under memory failure we might expose this area.  At least
+     * clean it up.  Oh well... */
+    memset (info + len, 0, (idx + count - len) * sizeof (info[0]));
+  }
   len += count;
   idx += count;
 
@@ -426,6 +432,8 @@ hb_buffer_t::move_to (unsigned int i)
     /* Tricky part: rewinding... */
     unsigned int count = out_len - i;
 
+    /* This will blow in our face if memory allocation fails later
+     * in this same lookup... */
     if (unlikely (idx < count && !shift_forward (count + 32))) return false;
 
     assert (idx >= count);
index 140ee0a..3564e43 100644 (file)
@@ -88,7 +88,7 @@ hb_tag_from_string (const char *str, int len)
 /**
  * hb_tag_to_string:
  * @tag: 
- * @buf: (array fixed-size=4): 
+ * @buf: (out caller-allocates) (array fixed-size=4) (element-type uint8_t): 
  *
  * 
  *
@@ -507,6 +507,9 @@ hb_script_get_horizontal_direction (hb_script_t script)
     /* Unicode-8.0 additions */
     case HB_SCRIPT_OLD_HUNGARIAN:
 
+    /* Unicode-9.0 additions */
+    case HB_SCRIPT_ADLAM:
+
       return HB_DIRECTION_RTL;
   }
 
index 5b0a0b6..2cbee76 100644 (file)
@@ -304,12 +304,22 @@ typedef enum
   /*7.0*/ HB_SCRIPT_TIRHUTA                    = HB_TAG ('T','i','r','h'),
   /*7.0*/ HB_SCRIPT_WARANG_CITI                        = HB_TAG ('W','a','r','a'),
 
-  /*8.0*/ HB_SCRIPT_AHOM                        = HB_TAG ('A','h','o','m'),
-  /*8.0*/ HB_SCRIPT_ANATOLIAN_HIEROGLYPHS       = HB_TAG ('H','l','u','w'),
-  /*8.0*/ HB_SCRIPT_HATRAN                      = HB_TAG ('H','a','t','r'),
-  /*8.0*/ HB_SCRIPT_MULTANI                     = HB_TAG ('M','u','l','t'),
-  /*8.0*/ HB_SCRIPT_OLD_HUNGARIAN               = HB_TAG ('H','u','n','g'),
-  /*8.0*/ HB_SCRIPT_SIGNWRITING                 = HB_TAG ('S','g','n','w'),
+  /*8.0*/ HB_SCRIPT_AHOM                       = HB_TAG ('A','h','o','m'),
+  /*8.0*/ HB_SCRIPT_ANATOLIAN_HIEROGLYPHS      = HB_TAG ('H','l','u','w'),
+  /*8.0*/ HB_SCRIPT_HATRAN                     = HB_TAG ('H','a','t','r'),
+  /*8.0*/ HB_SCRIPT_MULTANI                    = HB_TAG ('M','u','l','t'),
+  /*8.0*/ HB_SCRIPT_OLD_HUNGARIAN              = HB_TAG ('H','u','n','g'),
+  /*8.0*/ HB_SCRIPT_SIGNWRITING                        = HB_TAG ('S','g','n','w'),
+
+  /*
+   * Since 1.3.0
+   */
+  /*9.0*/ HB_SCRIPT_ADLAM                      = HB_TAG ('A','d','l','m'),
+  /*9.0*/ HB_SCRIPT_BHAIKSUKI                  = HB_TAG ('B','h','k','s'),
+  /*9.0*/ HB_SCRIPT_MARCHEN                    = HB_TAG ('M','a','r','c'),
+  /*9.0*/ HB_SCRIPT_OSAGE                      = HB_TAG ('O','s','g','e'),
+  /*9.0*/ HB_SCRIPT_TANGUT                     = HB_TAG ('T','a','n','g'),
+  /*9.0*/ HB_SCRIPT_NEWA                       = HB_TAG ('N','e','w','a'),
 
   /* No script set. */
   HB_SCRIPT_INVALID                            = HB_TAG_NONE,
index e64d265..f4d9716 100644 (file)
@@ -145,6 +145,7 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size)
     DEBUG_MSG (CORETEXT, cg_font, "Font CTFontCreateWithGraphicsFont() failed");
     return NULL;
   }
+  CFURLRef original_url = (CFURLRef)CTFontCopyAttribute(ct_font, kCTFontURLAttribute);
 
   /* Create font copy with cascade list that has LastResort first; this speeds up CoreText
    * font fallback which we don't need anyway. */
@@ -154,14 +155,35 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size)
     CFRelease (last_resort_font_desc);
     if (new_ct_font)
     {
-      CFRelease (ct_font);
-      ct_font = new_ct_font;
+      /* The CTFontCreateCopyWithAttributes call fails to stay on the same font
+       * when reconfiguring the cascade list and may switch to a different font
+       * when there are fonts that go by the same name, since the descriptor is
+       * just name and size.
+       *
+       * Avoid reconfiguring the cascade lists if the new font is outside the
+       * system locations that we cannot access from the sandboxed renderer
+       * process in Blink. This can be detected by the new file URL location
+       * that the newly found font points to. */
+      CFURLRef new_url = (CFURLRef) CTFontCopyAttribute (new_ct_font, kCTFontURLAttribute);
+      // Keep reconfigured font if URL cannot be retrieved (seems to be the case
+      // on Mac OS 10.12 Sierra), speculative fix for crbug.com/625606
+      if (!original_url || !new_url || CFEqual (original_url, new_url)) {
+        CFRelease (ct_font);
+        ct_font = new_ct_font;
+      } else {
+        CFRelease (new_ct_font);
+        DEBUG_MSG (CORETEXT, ct_font, "Discarding reconfigured CTFont, location changed.");
+      }
+      if (new_url)
+        CFRelease (new_url);
     }
     else
       DEBUG_MSG (CORETEXT, ct_font, "Font copy with empty cascade list failed");
   }
 
- return ct_font;
+  if (original_url)
+    CFRelease (original_url);
+  return ct_font;
 }
 
 struct hb_coretext_shaper_face_data_t {
index 96d1870..09889d0 100644 (file)
 #define HB_SHAPER directwrite
 #include "hb-shaper-impl-private.hh"
 
-#ifndef HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
-  #include <DWrite.h>
-#else
-  #include <DWrite_1.h>
-#endif
+#include <DWrite_1.h>
 
 #include "hb-directwrite.h"
 
 HB_SHAPER_DATA_ENSURE_DECLARE(directwrite, face)
 HB_SHAPER_DATA_ENSURE_DECLARE(directwrite, font)
 
-/*
-* shaper face data
-*/
 
-struct hb_directwrite_shaper_face_data_t {
-  HANDLE fh;
-  wchar_t face_name[LF_FACESIZE];
-};
+/*
+ * DirectWrite font stream helpers
+ */
 
-/* face_name should point to a wchar_t[LF_FACESIZE] object. */
-static void
-_hb_generate_unique_face_name(wchar_t *face_name, unsigned int *plen)
+// This is a font loader which provides only one font (unlike its original design).
+// For a better implementation which was also source of this
+// and DWriteFontFileStream, have a look at to NativeFontResourceDWrite.cpp in Mozilla
+class DWriteFontFileLoader : public IDWriteFontFileLoader
 {
-  /* We'll create a private name for the font from a UUID using a simple,
-  * somewhat base64-like encoding scheme */
-  const char *enc = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-";
-  UUID id;
-  UuidCreate ((UUID*)&id);
-  ASSERT_STATIC (2 + 3 * (16 / 2) < LF_FACESIZE);
-  unsigned int name_str_len = 0;
-  face_name[name_str_len++] = 'F';
-  face_name[name_str_len++] = '_';
-  unsigned char *p = (unsigned char *)&id;
-  for (unsigned int i = 0; i < 16; i += 2)
-  {
-    /* Spread the 16 bits from two bytes of the UUID across three chars of face_name,
-    * using the bits in groups of 5,5,6 to select chars from enc.
-    * This will generate 24 characters; with the 'F_' prefix we already provided,
-    * the name will be 26 chars (plus the NUL terminator), so will always fit within
-    * face_name (LF_FACESIZE = 32). */
-    face_name[name_str_len++] = enc[p[i] >> 3];
-    face_name[name_str_len++] = enc[((p[i] << 2) | (p[i + 1] >> 6)) & 0x1f];
-    face_name[name_str_len++] = enc[p[i + 1] & 0x3f];
-  }
-  face_name[name_str_len] = 0;
-  if (plen)
-    *plen = name_str_len;
-}
+private:
+  IDWriteFontFileStream *mFontFileStream;
+public:
+  DWriteFontFileLoader (IDWriteFontFileStream *fontFileStream) {
+    mFontFileStream = fontFileStream;
+  }
 
-/* Destroys blob. */
-static hb_blob_t *
-_hb_rename_font(hb_blob_t *blob, wchar_t *new_name)
-{
-  /* Create a copy of the font data, with the 'name' table replaced by a
-   * table that names the font with our private F_* name created above.
-   * For simplicity, we just append a new 'name' table and update the
-   * sfnt directory; the original table is left in place, but unused.
-   *
-   * The new table will contain just 5 name IDs: family, style, unique,
-   * full, PS. All of them point to the same name data with our unique name.
-   */
+  // IUnknown interface
+  IFACEMETHOD(QueryInterface)(IID const& iid, OUT void** ppObject) { return S_OK; }
+  IFACEMETHOD_(ULONG, AddRef)() { return 1; }
+  IFACEMETHOD_(ULONG, Release)() { return 1; }
 
-  blob = OT::Sanitizer<OT::OpenTypeFontFile>::sanitize (blob);
+  // IDWriteFontFileLoader methods
+  virtual HRESULT STDMETHODCALLTYPE CreateStreamFromKey(void const* fontFileReferenceKey,
+    UINT32 fontFileReferenceKeySize,
+    OUT IDWriteFontFileStream** fontFileStream)
+  {
+    *fontFileStream = mFontFileStream;
+    return S_OK;
+  }
+};
 
-  unsigned int length, new_length, name_str_len;
-  const char *orig_sfnt_data = hb_blob_get_data (blob, &length);
+class DWriteFontFileStream : public IDWriteFontFileStream
+{
+private:
+  uint8_t *mData;
+  uint32_t mSize;
+public:
+  DWriteFontFileStream(uint8_t *aData, uint32_t aSize)
+  {
+    mData = aData;
+    mSize = aSize;
+  }
 
-  _hb_generate_unique_face_name (new_name, &name_str_len);
+  // IUnknown interface
+  IFACEMETHOD(QueryInterface)(IID const& iid, OUT void** ppObject) { return S_OK; }
+  IFACEMETHOD_(ULONG, AddRef)() { return 1; }
+  IFACEMETHOD_(ULONG, Release)() { return 1; }
 
-  static const uint16_t name_IDs[] = { 1, 2, 3, 4, 6 };
+  // IDWriteFontFileStream methods
+  virtual HRESULT STDMETHODCALLTYPE ReadFileFragment(void const** fragmentStart,
+    UINT64 fileOffset,
+    UINT64 fragmentSize,
+    OUT void** fragmentContext)
+  {
+    // We are required to do bounds checking.
+    if (fileOffset + fragmentSize > mSize) {
+      return E_FAIL;
+    }
 
-  unsigned int name_table_length = OT::name::min_size +
-    ARRAY_LENGTH(name_IDs) * OT::NameRecord::static_size +
-    name_str_len * 2; /* for name data in UTF16BE form */
-  unsigned int name_table_offset = (length + 3) & ~3;
+    // truncate the 64 bit fileOffset to size_t sized index into mData
+    size_t index = static_cast<size_t> (fileOffset);
 
-  new_length = name_table_offset + ((name_table_length + 3) & ~3);
-  void *new_sfnt_data = calloc(1, new_length);
-  if (!new_sfnt_data)
-  {
-    hb_blob_destroy (blob);
-    return NULL;
+    // We should be alive for the duration of this.
+    *fragmentStart = &mData[index];
+    *fragmentContext = nullptr;
+    return S_OK;
   }
 
-  memcpy(new_sfnt_data, orig_sfnt_data, length);
+  virtual void STDMETHODCALLTYPE ReleaseFileFragment(void* fragmentContext) { }
 
-  OT::name &name = OT::StructAtOffset<OT::name> (new_sfnt_data, name_table_offset);
-  name.format.set (0);
-  name.count.set (ARRAY_LENGTH (name_IDs));
-  name.stringOffset.set (name.get_size());
-  for (unsigned int i = 0; i < ARRAY_LENGTH (name_IDs); i++)
+  virtual HRESULT STDMETHODCALLTYPE GetFileSize(OUT UINT64* fileSize)
   {
-    OT::NameRecord &record = name.nameRecord[i];
-    record.platformID.set(3);
-    record.encodingID.set(1);
-    record.languageID.set(0x0409u); /* English */
-    record.nameID.set(name_IDs[i]);
-    record.length.set(name_str_len * 2);
-    record.offset.set(0);
-  }
-
-  /* Copy string data from new_name, converting wchar_t to UTF16BE. */
-  unsigned char *p = &OT::StructAfter<unsigned char>(name);
-  for (unsigned int i = 0; i < name_str_len; i++)
-  {
-    *p++ = new_name[i] >> 8;
-    *p++ = new_name[i] & 0xff;
+    *fileSize = mSize;
+    return S_OK;
   }
 
-  /* Adjust name table entry to point to new name table */
-  const OT::OpenTypeFontFile &file = *(OT::OpenTypeFontFile *) (new_sfnt_data);
-  unsigned int face_count = file.get_face_count ();
-  for (unsigned int face_index = 0; face_index < face_count; face_index++)
+  virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime(OUT UINT64* lastWriteTime)
   {
-    /* Note: doing multiple edits (ie. TTC) can be unsafe.  There may be
-    * toe-stepping.  But we don't really care. */
-    const OT::OpenTypeFontFace &face = file.get_face (face_index);
-    unsigned int index;
-    if (face.find_table_index (HB_OT_TAG_name, &index))
-    {
-      OT::TableRecord &record = const_cast<OT::TableRecord &> (face.get_table (index));
-      record.checkSum.set_for_data (&name, name_table_length);
-      record.offset.set (name_table_offset);
-      record.length.set (name_table_length);
-    }
-    else if (face_index == 0) /* Fail if first face doesn't have 'name' table. */
-    {
-      free (new_sfnt_data);
-      hb_blob_destroy (blob);
-      return NULL;
-    }
+    return E_NOTIMPL;
   }
+};
 
-  /* The checkSumAdjustment field in the 'head' table is now wrong,
-  * but that doesn't actually seem to cause any problems so we don't
-  * bother. */
 
-  hb_blob_destroy (blob);
-  return hb_blob_create ((const char *)new_sfnt_data, new_length,
-    HB_MEMORY_MODE_WRITABLE, NULL, free);
-}
+/*
+* shaper face data
+*/
+
+struct hb_directwrite_shaper_face_data_t {
+  IDWriteFactory *dwriteFactory;
+  IDWriteFontFile *fontFile;
+  IDWriteFontFileStream *fontFileStream;
+  IDWriteFontFileLoader *fontFileLoader;
+  IDWriteFontFace *fontFace;
+  hb_blob_t *faceBlob;
+};
 
 hb_directwrite_shaper_face_data_t *
 _hb_directwrite_shaper_face_data_create(hb_face_t *face)
 {
   hb_directwrite_shaper_face_data_t *data =
-    (hb_directwrite_shaper_face_data_t *) calloc (1, sizeof (hb_directwrite_shaper_face_data_t));
+    (hb_directwrite_shaper_face_data_t *) malloc (sizeof (hb_directwrite_shaper_face_data_t));
   if (unlikely (!data))
     return NULL;
 
+  // TODO: factory and fontFileLoader should be cached separately
+  IDWriteFactory* dwriteFactory;
+  DWriteCreateFactory (
+    DWRITE_FACTORY_TYPE_SHARED,
+    __uuidof (IDWriteFactory),
+    (IUnknown**) &dwriteFactory
+  );
+
+  HRESULT hr;
   hb_blob_t *blob = hb_face_reference_blob (face);
-  if (unlikely (!hb_blob_get_length (blob)))
-    DEBUG_MSG(DIRECTWRITE, face, "Face has empty blob");
+  IDWriteFontFileStream *fontFileStream = new DWriteFontFileStream (
+    (uint8_t*) hb_blob_get_data (blob, NULL), hb_blob_get_length (blob));
 
-  blob = _hb_rename_font (blob, data->face_name);
-  if (unlikely (!blob))
-  {
-    free(data);
-    return NULL;
+  IDWriteFontFileLoader *fontFileLoader = new DWriteFontFileLoader (fontFileStream);
+  dwriteFactory->RegisterFontFileLoader (fontFileLoader);
+
+  IDWriteFontFile *fontFile;
+  uint64_t fontFileKey = 0;
+  hr = dwriteFactory->CreateCustomFontFileReference (&fontFileKey, sizeof (fontFileKey),
+      fontFileLoader, &fontFile);
+
+#define FAIL(...) \
+  HB_STMT_START { \
+    DEBUG_MSG (DIRECTWRITE, NULL, __VA_ARGS__); \
+    return false; \
+  } HB_STMT_END;
+
+  if (FAILED (hr)) {
+    FAIL ("Failed to load font file from data!");
+    return false;
   }
 
-  DWORD num_fonts_installed;
-  data->fh = AddFontMemResourceEx ((void *)hb_blob_get_data(blob, NULL),
-    hb_blob_get_length (blob),
-    0, &num_fonts_installed);
-  if (unlikely (!data->fh))
-  {
-    DEBUG_MSG (DIRECTWRITE, face, "Face AddFontMemResourceEx() failed");
-    free (data);
-    return NULL;
+  BOOL isSupported;
+  DWRITE_FONT_FILE_TYPE fileType;
+  DWRITE_FONT_FACE_TYPE faceType;
+  UINT32 numberOfFaces;
+  hr = fontFile->Analyze (&isSupported, &fileType, &faceType, &numberOfFaces);
+  if (FAILED (hr) || !isSupported) {
+    FAIL ("Font file is not supported.");
+    return false;
   }
 
+#undef FAIL
+
+  IDWriteFontFace *fontFace;
+  dwriteFactory->CreateFontFace (faceType, 1, &fontFile, 0,
+    DWRITE_FONT_SIMULATIONS_NONE, &fontFace);
+
+  data->dwriteFactory = dwriteFactory;
+  data->fontFile = fontFile;
+  data->fontFileStream = fontFileStream;
+  data->fontFileLoader = fontFileLoader;
+  data->fontFace = fontFace;
+  data->faceBlob = blob;
+
   return data;
 }
 
 void
 _hb_directwrite_shaper_face_data_destroy(hb_directwrite_shaper_face_data_t *data)
 {
-  RemoveFontMemResourceEx(data->fh);
-  free(data);
+  if (data->fontFace)
+    data->fontFace->Release ();
+  if (data->fontFile)
+    data->fontFile->Release ();
+  if (data->dwriteFactory) {
+    if (data->fontFileLoader)
+      data->dwriteFactory->UnregisterFontFileLoader(data->fontFileLoader);
+    data->dwriteFactory->Release();
+  }
+  if (data->fontFileLoader)
+    delete data->fontFileLoader;
+  if (data->fontFileStream)
+    delete data->fontFileStream;
+  if (data->faceBlob)
+    hb_blob_destroy (data->faceBlob);
+  if (data)
+    free (data);
 }
 
 
@@ -223,90 +232,27 @@ _hb_directwrite_shaper_face_data_destroy(hb_directwrite_shaper_face_data_t *data
  */
 
 struct hb_directwrite_shaper_font_data_t {
-  HDC hdc;
-  LOGFONTW log_font;
-  HFONT hfont;
 };
 
-static bool
-populate_log_font (LOGFONTW  *lf,
-       hb_font_t *font)
-{
-  memset (lf, 0, sizeof (*lf));
-  lf->lfHeight = -font->y_scale;
-  lf->lfCharSet = DEFAULT_CHARSET;
-
-  hb_face_t *face = font->face;
-  hb_directwrite_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face);
-
-  memcpy (lf->lfFaceName, face_data->face_name, sizeof (lf->lfFaceName));
-
-  return true;
-}
-
 hb_directwrite_shaper_font_data_t *
 _hb_directwrite_shaper_font_data_create (hb_font_t *font)
 {
   if (unlikely (!hb_directwrite_shaper_face_data_ensure (font->face))) return NULL;
 
   hb_directwrite_shaper_font_data_t *data =
-    (hb_directwrite_shaper_font_data_t *) calloc (1, sizeof (hb_directwrite_shaper_font_data_t));
+    (hb_directwrite_shaper_font_data_t *) malloc (sizeof (hb_directwrite_shaper_font_data_t));
   if (unlikely (!data))
     return NULL;
 
-  data->hdc = GetDC (NULL);
-
-  if (unlikely (!populate_log_font (&data->log_font, font)))
-  {
-    DEBUG_MSG (DIRECTWRITE, font, "Font populate_log_font() failed");
-    _hb_directwrite_shaper_font_data_destroy (data);
-    return NULL;
-  }
-
-  data->hfont = CreateFontIndirectW (&data->log_font);
-  if (unlikely (!data->hfont))
-  {
-    DEBUG_MSG (DIRECTWRITE, font, "Font CreateFontIndirectW() failed");
-    _hb_directwrite_shaper_font_data_destroy (data);
-     return NULL;
-  }
-
-  if (!SelectObject (data->hdc, data->hfont))
-  {
-    DEBUG_MSG (DIRECTWRITE, font, "Font SelectObject() failed");
-    _hb_directwrite_shaper_font_data_destroy (data);
-     return NULL;
-  }
-
   return data;
 }
 
 void
 _hb_directwrite_shaper_font_data_destroy (hb_directwrite_shaper_font_data_t *data)
 {
-  if (data->hdc)
-    ReleaseDC (NULL, data->hdc);
-  if (data->hfont)
-    DeleteObject (data->hfont);
   free (data);
 }
 
-LOGFONTW *
-hb_directwrite_font_get_logfontw (hb_font_t *font)
-{
-  if (unlikely (!hb_directwrite_shaper_font_data_ensure (font))) return NULL;
-  hb_directwrite_shaper_font_data_t *font_data =  HB_SHAPER_DATA_GET (font);
-  return &font_data->log_font;
-}
-
-HFONT
-hb_directwrite_font_get_hfont (hb_font_t *font)
-{
-  if (unlikely (!hb_directwrite_shaper_font_data_ensure (font))) return NULL;
-  hb_directwrite_shaper_font_data_t *font_data =  HB_SHAPER_DATA_GET (font);
-  return font_data->hfont;
-}
-
 
 /*
  * shaper shape_plan data
@@ -327,7 +273,7 @@ _hb_directwrite_shaper_shape_plan_data_destroy (hb_directwrite_shaper_shape_plan
 {
 }
 
-// Most of here TextAnalysis is originally written by Bas Schouten for Mozilla project
+// Most of TextAnalysis is originally written by Bas Schouten for Mozilla project
 // but now is relicensed to MIT for HarfBuzz use
 class TextAnalysis
   : public IDWriteTextAnalysisSource, public IDWriteTextAnalysisSink
@@ -444,7 +390,8 @@ public:
 
   IFACEMETHODIMP GetLocaleName(uint32_t textPosition,
     uint32_t* textLength,
-    wchar_t const** localeName) {
+    wchar_t const** localeName)
+  {
     return S_OK;
   }
 
@@ -469,7 +416,8 @@ public:
   {
     SetCurrentRun(textPosition);
     SplitCurrentRun(textPosition);
-    while (textLength > 0) {
+    while (textLength > 0)
+    {
       Run *run = FetchNextRun(&textLength);
       run->mScript = *scriptAnalysis;
     }
@@ -502,10 +450,12 @@ protected:
     Run *origRun = mCurrentRun;
     // Split the tail if needed (the length remaining is less than the
     // current run's size).
-    if (*textLength < mCurrentRun->mTextLength) {
-      SplitCurrentRun(mCurrentRun->mTextStart + *textLength);
+    if (*textLength < mCurrentRun->mTextLength)
+    {
+      SplitCurrentRun (mCurrentRun->mTextStart + *textLength);
     }
-    else {
+    else
+    {
       // Just advance the current run.
       mCurrentRun = mCurrentRun->nextRun;
     }
@@ -522,12 +472,14 @@ protected:
     // this will usually just return early. If not, find the
     // corresponding run for the text position.
 
-    if (mCurrentRun && mCurrentRun->ContainsTextPosition(textPosition)) {
+    if (mCurrentRun && mCurrentRun->ContainsTextPosition (textPosition))
+    {
       return;
     }
 
     for (Run *run = &mRunHead; run; run = run->nextRun) {
-      if (run->ContainsTextPosition(textPosition)) {
+      if (run->ContainsTextPosition (textPosition))
+      {
         mCurrentRun = run;
         return;
       }
@@ -538,13 +490,15 @@ protected:
 
   void SplitCurrentRun(uint32_t splitPosition)
   {
-    if (!mCurrentRun) {
+    if (!mCurrentRun)
+    {
       //NS_ASSERTION(false, "SplitCurrentRun called without current run.");
       // Shouldn't be calling this when no current run is set!
       return;
     }
     // Split the current run.
-    if (splitPosition <= mCurrentRun->mTextStart) {
+    if (splitPosition <= mCurrentRun->mTextStart)
+    {
       // No need to split, already the start of a run
       // or before it. Usually the first.
       return;
@@ -600,32 +554,11 @@ _hb_directwrite_shape(hb_shape_plan_t    *shape_plan,
   hb_face_t *face = font->face;
   hb_directwrite_shaper_face_data_t *face_data = HB_SHAPER_DATA_GET (face);
   hb_directwrite_shaper_font_data_t *font_data = HB_SHAPER_DATA_GET (font);
+  IDWriteFactory *dwriteFactory = face_data->dwriteFactory;
+  IDWriteFontFace *fontFace = face_data->fontFace;
 
-  // factory probably should be cached
-#ifndef HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
-  IDWriteFactory* dwriteFactory;
-#else
-  IDWriteFactory1* dwriteFactory;
-#endif
-  DWriteCreateFactory (
-    DWRITE_FACTORY_TYPE_SHARED,
-    __uuidof (IDWriteFactory),
-    (IUnknown**) &dwriteFactory
-  );
-
-  IDWriteGdiInterop *gdiInterop;
-  dwriteFactory->GetGdiInterop (&gdiInterop);
-  IDWriteFontFace* fontFace;
-  gdiInterop->CreateFontFaceFromHdc (font_data->hdc, &fontFace);
-
-#ifndef HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
   IDWriteTextAnalyzer* analyzer;
   dwriteFactory->CreateTextAnalyzer(&analyzer);
-#else
-  IDWriteTextAnalyzer* analyzer0;
-  dwriteFactory->CreateTextAnalyzer (&analyzer0);
-  IDWriteTextAnalyzer1* analyzer = (IDWriteTextAnalyzer1*) analyzer0;
-#endif
 
   unsigned int scratch_size;
   hb_buffer_t::scratch_buffer_t *scratch = buffer->get_scratch_buffer (&scratch_size);
@@ -672,7 +605,6 @@ _hb_directwrite_shape(hb_shape_plan_t    *shape_plan,
     }
   }
 
-  HRESULT hr;
   // TODO: Handle TEST_DISABLE_OPTIONAL_LIGATURES
 
   DWRITE_READING_DIRECTION readingDirection = buffer->props.direction ? 
@@ -688,6 +620,7 @@ _hb_directwrite_shape(hb_shape_plan_t    *shape_plan,
 
   TextAnalysis analysis(textString, textLength, NULL, readingDirection);
   TextAnalysis::Run *runHead;
+  HRESULT hr;
   hr = analysis.GenerateResults(analyzer, &runHead);
 
 #define FAIL(...) \
@@ -731,11 +664,11 @@ _hb_directwrite_shape(hb_shape_plan_t    *shape_plan,
     (const DWRITE_TYPOGRAPHIC_FEATURES*) &singleFeatures;
   const uint32_t featureRangeLengths[] = { textLength };
 
+  uint16_t* clusterMap = (uint16_t*) malloc (textLength * sizeof (uint16_t));
+  DWRITE_SHAPING_TEXT_PROPERTIES* textProperties = (DWRITE_SHAPING_TEXT_PROPERTIES*)
+    malloc (textLength * sizeof (DWRITE_SHAPING_TEXT_PROPERTIES));
 retry_getglyphs:
-  uint16_t* clusterMap = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t));
   uint16_t* glyphIndices = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t));
-  DWRITE_SHAPING_TEXT_PROPERTIES* textProperties = (DWRITE_SHAPING_TEXT_PROPERTIES*)
-    malloc (maxGlyphCount * sizeof (DWRITE_SHAPING_TEXT_PROPERTIES));
   DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProperties = (DWRITE_SHAPING_GLYPH_PROPERTIES*)
     malloc (maxGlyphCount * sizeof (DWRITE_SHAPING_GLYPH_PROPERTIES));
 
@@ -746,9 +679,7 @@ retry_getglyphs:
 
   if (unlikely (hr == HRESULT_FROM_WIN32 (ERROR_INSUFFICIENT_BUFFER)))
   {
-    free (clusterMap);
     free (glyphIndices);
-    free (textProperties);
     free (glyphProperties);
 
     maxGlyphCount *= 2;
@@ -799,106 +730,109 @@ retry_getglyphs:
     return false;
   }
 
-#ifdef HB_DIRECTWRITE_EXPERIMENTAL_JUSTIFICATION
+  // TODO: get lineWith from somewhere
+  float lineWidth = 0;
 
-  DWRITE_JUSTIFICATION_OPPORTUNITY* justificationOpportunities =
-    (DWRITE_JUSTIFICATION_OPPORTUNITY*)
-    malloc (maxGlyphCount * sizeof (DWRITE_JUSTIFICATION_OPPORTUNITY));
-  hr = analyzer->GetJustificationOpportunities (fontFace, fontEmSize,
-    runHead->mScript, textLength, glyphCount, textString, clusterMap,
-    glyphProperties, justificationOpportunities);
+  IDWriteTextAnalyzer1* analyzer1;
+  analyzer->QueryInterface (&analyzer1);
 
-  if (FAILED (hr))
+  if (analyzer1 && lineWidth)
   {
-    FAIL ("Analyzer failed to get justification opportunities.");
-    return false;
-  }
 
-  // TODO: get lineWith from somewhere
-  float lineWidth = 60000;
+    DWRITE_JUSTIFICATION_OPPORTUNITY* justificationOpportunities =
+      (DWRITE_JUSTIFICATION_OPPORTUNITY*)
+      malloc (maxGlyphCount * sizeof (DWRITE_JUSTIFICATION_OPPORTUNITY));
+    hr = analyzer1->GetJustificationOpportunities (fontFace, fontEmSize,
+      runHead->mScript, textLength, glyphCount, textString, clusterMap,
+      glyphProperties, justificationOpportunities);
 
-  float* justifiedGlyphAdvances =
-    (float*) malloc (maxGlyphCount * sizeof (float));
-  DWRITE_GLYPH_OFFSET* justifiedGlyphOffsets = (DWRITE_GLYPH_OFFSET*)
-    malloc (glyphCount * sizeof (DWRITE_GLYPH_OFFSET));
-  hr = analyzer->JustifyGlyphAdvances (lineWidth, glyphCount, justificationOpportunities,
-    glyphAdvances, glyphOffsets, justifiedGlyphAdvances, justifiedGlyphOffsets);
+    if (FAILED (hr))
+    {
+      FAIL ("Analyzer failed to get justification opportunities.");
+      return false;
+    }
 
-  if (FAILED (hr))
-  {
-    FAIL ("Analyzer failed to get justified glyph advances.");
-    return false;
-  }
+    float* justifiedGlyphAdvances =
+      (float*) malloc (maxGlyphCount * sizeof (float));
+    DWRITE_GLYPH_OFFSET* justifiedGlyphOffsets = (DWRITE_GLYPH_OFFSET*)
+      malloc (glyphCount * sizeof (DWRITE_GLYPH_OFFSET));
+    hr = analyzer1->JustifyGlyphAdvances (lineWidth, glyphCount, justificationOpportunities,
+      glyphAdvances, glyphOffsets, justifiedGlyphAdvances, justifiedGlyphOffsets);
 
-  DWRITE_SCRIPT_PROPERTIES scriptProperties;
-  hr = analyzer->GetScriptProperties (runHead->mScript, &scriptProperties);
-  if (FAILED (hr))
-  {
-    FAIL ("Analyzer failed to get script properties.");
-    return false;
-  }
-  uint32_t justificationCharacter = scriptProperties.justificationCharacter;
+    if (FAILED (hr))
+    {
+      FAIL("Analyzer failed to get justified glyph advances.");
+      return false;
+    }
 
-  // if a script justificationCharacter is not space, it can have GetJustifiedGlyphs
-  if (justificationCharacter != 32)
-  {
-retry_getjustifiedglyphs:
-    uint16_t* modifiedClusterMap = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t));
-    uint16_t* modifiedGlyphIndices = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t));
-    float* modifiedGlyphAdvances = (float*) malloc (maxGlyphCount * sizeof (float));
-    DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets = (DWRITE_GLYPH_OFFSET*)
-      malloc (maxGlyphCount * sizeof (DWRITE_GLYPH_OFFSET));
-    uint32_t actualGlyphsCount;
-    hr = analyzer->GetJustifiedGlyphs (fontFace, fontEmSize, runHead->mScript,
+    DWRITE_SCRIPT_PROPERTIES scriptProperties;
+    hr = analyzer1->GetScriptProperties (runHead->mScript, &scriptProperties);
+    if (FAILED (hr))
+    {
+      FAIL("Analyzer failed to get script properties.");
+      return false;
+    }
+    uint32_t justificationCharacter = scriptProperties.justificationCharacter;
+
+    // if a script justificationCharacter is not space, it can have GetJustifiedGlyphs
+    if (justificationCharacter != 32)
+    {
+      uint16_t* modifiedClusterMap = (uint16_t*) malloc (textLength * sizeof (uint16_t));
+    retry_getjustifiedglyphs:
+      uint16_t* modifiedGlyphIndices = (uint16_t*) malloc (maxGlyphCount * sizeof (uint16_t));
+      float* modifiedGlyphAdvances = (float*) malloc (maxGlyphCount * sizeof (float));
+      DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets = (DWRITE_GLYPH_OFFSET*)
+        malloc (maxGlyphCount * sizeof (DWRITE_GLYPH_OFFSET));
+      uint32_t actualGlyphsCount;
+      hr = analyzer1->GetJustifiedGlyphs (fontFace, fontEmSize, runHead->mScript,
         textLength, glyphCount, maxGlyphCount, clusterMap, glyphIndices,
         glyphAdvances, justifiedGlyphAdvances, justifiedGlyphOffsets,
         glyphProperties, &actualGlyphsCount, modifiedClusterMap, modifiedGlyphIndices,
         modifiedGlyphAdvances, modifiedGlyphOffsets);
 
-    if (hr == HRESULT_FROM_WIN32 (ERROR_INSUFFICIENT_BUFFER))
-    {
-      maxGlyphCount = actualGlyphsCount;
-      free (modifiedClusterMap);
-      free (modifiedGlyphIndices);
-      free (modifiedGlyphAdvances);
-      free (modifiedGlyphOffsets);
+      if (hr == HRESULT_FROM_WIN32 (ERROR_INSUFFICIENT_BUFFER))
+      {
+        maxGlyphCount = actualGlyphsCount;
+        free (modifiedGlyphIndices);
+        free (modifiedGlyphAdvances);
+        free (modifiedGlyphOffsets);
 
-      maxGlyphCount = actualGlyphsCount;
+        maxGlyphCount = actualGlyphsCount;
 
-      goto retry_getjustifiedglyphs;
-    }
-    if (FAILED (hr))
-    {
-      FAIL ("Analyzer failed to get justified glyphs.");
-      return false;
-    }
+        goto retry_getjustifiedglyphs;
+      }
+      if (FAILED (hr))
+      {
+        FAIL ("Analyzer failed to get justified glyphs.");
+        return false;
+      }
 
-    free (clusterMap);
-    free (glyphIndices);
-    free (glyphAdvances);
-    free (glyphOffsets);
+      free (clusterMap);
+      free (glyphIndices);
+      free (glyphAdvances);
+      free (glyphOffsets);
 
-    glyphCount = actualGlyphsCount;
-    clusterMap = modifiedClusterMap;
-    glyphIndices = modifiedGlyphIndices;
-    glyphAdvances = modifiedGlyphAdvances;
-    glyphOffsets = modifiedGlyphOffsets;
+      glyphCount = actualGlyphsCount;
+      clusterMap = modifiedClusterMap;
+      glyphIndices = modifiedGlyphIndices;
+      glyphAdvances = modifiedGlyphAdvances;
+      glyphOffsets = modifiedGlyphOffsets;
 
-    free(justifiedGlyphAdvances);
-    free(justifiedGlyphOffsets);
-  }
-  else
-  {
-    free(glyphAdvances);
-    free(glyphOffsets);
+      free (justifiedGlyphAdvances);
+      free (justifiedGlyphOffsets);
+    }
+    else
+    {
+      free (glyphAdvances);
+      free (glyphOffsets);
 
-    glyphAdvances = justifiedGlyphAdvances;
-    glyphOffsets = justifiedGlyphOffsets;
-  }
+      glyphAdvances = justifiedGlyphAdvances;
+      glyphOffsets = justifiedGlyphOffsets;
+    }
 
-  free(justificationOpportunities);
+    free (justificationOpportunities);
 
-#endif
+  }
 
   /* Ok, we've got everything we need, now compose output buffer,
    * very, *very*, carefully! */
index adf33df..0e1b479 100644 (file)
@@ -31,4 +31,4 @@ HB_BEGIN_DECLS
 
 HB_END_DECLS
 
-#endif /* HB_UNISCRIBE_H */
+#endif /* HB_DIRECTWRITE_H */
index 8da40a9..0b75577 100644 (file)
@@ -505,7 +505,13 @@ struct hb_font_t {
   }
 
   private:
-  inline hb_position_t em_scale (int16_t v, int scale) { return (hb_position_t) (v * (int64_t) scale / face->get_upem ()); }
+  inline hb_position_t em_scale (int16_t v, int scale)
+  {
+    int upem = face->get_upem ();
+    int64_t scaled = v * (int64_t) scale;
+    scaled += scaled >= 0 ? upem/2 : -upem/2; /* Round. */
+    return (hb_position_t) (scaled / upem);
+  }
 };
 
 #define HB_SHAPER_DATA_CREATE_FUNC_EXTRA_ARGS
index 6a4823a..60554b9 100644 (file)
@@ -158,6 +158,7 @@ hb_font_get_glyph_v_advance_nil (hb_font_t *font HB_UNUSED,
                                 hb_codepoint_t glyph,
                                 void *user_data HB_UNUSED)
 {
+  /* TODO use font_extents.ascender+descender */
   return font->y_scale;
 }
 static hb_position_t
index 2cad8c2..eaa1311 100644 (file)
@@ -70,11 +70,12 @@ struct hb_ft_font_t
 {
   FT_Face ft_face;
   int load_flags;
+  bool symbol; /* Whether selected cmap is symbol cmap. */
   bool unref; /* Whether to destroy ft_face when done. */
 };
 
 static hb_ft_font_t *
-_hb_ft_font_create (FT_Face ft_face, bool unref)
+_hb_ft_font_create (FT_Face ft_face, bool symbol, bool unref)
 {
   hb_ft_font_t *ft_font = (hb_ft_font_t *) calloc (1, sizeof (hb_ft_font_t));
 
@@ -82,6 +83,7 @@ _hb_ft_font_create (FT_Face ft_face, bool unref)
     return NULL;
 
   ft_font->ft_face = ft_face;
+  ft_font->symbol = symbol;
   ft_font->unref = unref;
 
   ft_font->load_flags = FT_LOAD_DEFAULT | FT_LOAD_NO_HINTING;
@@ -90,10 +92,16 @@ _hb_ft_font_create (FT_Face ft_face, bool unref)
 }
 
 static void
+_hb_ft_face_destroy (FT_Face ft_face)
+{
+  FT_Done_Face (ft_face);
+}
+
+static void
 _hb_ft_font_destroy (hb_ft_font_t *ft_font)
 {
   if (ft_font->unref)
-    FT_Done_Face (ft_font->ft_face);
+    _hb_ft_face_destroy (ft_font->ft_face);
 
   free (ft_font);
 }
@@ -165,7 +173,21 @@ hb_ft_get_nominal_glyph (hb_font_t *font HB_UNUSED,
   unsigned int g = FT_Get_Char_Index (ft_font->ft_face, unicode);
 
   if (unlikely (!g))
-    return false;
+  {
+    if (unlikely (ft_font->symbol) && unicode <= 0x00FFu)
+    {
+      /* For symbol-encoded OpenType fonts, we duplicate the
+       * U+F000..F0FF range at U+0000..U+00FF.  That's what
+       * Windows seems to do, and that's hinted about at:
+       * http://www.microsoft.com/typography/otspec/recom.htm
+       * under "Non-Standard (Symbol) Fonts". */
+      g = FT_Get_Char_Index (ft_font->ft_face, 0xF000u + unicode);
+      if (!g)
+       return false;
+    }
+    else
+      return false;
+  }
 
   *glyph = g;
   return true;
@@ -444,9 +466,11 @@ retry:
 #endif
   };
 
+  bool symbol = ft_face->charmap && ft_face->charmap->encoding == FT_ENCODING_MS_SYMBOL;
+
   hb_font_set_funcs (font,
                     funcs,
-                    _hb_ft_font_create (ft_face, unref),
+                    _hb_ft_font_create (ft_face, symbol, unref),
                     (hb_destroy_func_t) _hb_ft_font_destroy);
 }
 
@@ -526,7 +550,7 @@ hb_face_t *
 hb_ft_face_create_referenced (FT_Face ft_face)
 {
   FT_Reference_Face (ft_face);
-  return hb_ft_face_create (ft_face, (hb_destroy_func_t) FT_Done_Face);
+  return hb_ft_face_create (ft_face, (hb_destroy_func_t) _hb_ft_face_destroy);
 }
 
 static void
@@ -606,7 +630,7 @@ hb_font_t *
 hb_ft_font_create_referenced (FT_Face ft_face)
 {
   FT_Reference_Face (ft_face);
-  return hb_ft_font_create (ft_face, (hb_destroy_func_t) FT_Done_Face);
+  return hb_ft_font_create (ft_face, (hb_destroy_func_t) _hb_ft_face_destroy);
 }
 
 
@@ -675,7 +699,8 @@ hb_ft_font_set_funcs (hb_font_t *font)
     return;
   }
 
-  FT_Select_Charmap (ft_face, FT_ENCODING_UNICODE);
+  if (FT_Select_Charmap (ft_face, FT_ENCODING_UNICODE))
+    FT_Select_Charmap (ft_face, FT_ENCODING_MS_SYMBOL);
 
   FT_Set_Char_Size (ft_face,
                    abs (font->x_scale), abs (font->y_scale),
index 0ea3b12..1c30321 100644 (file)
@@ -41,30 +41,40 @@ HB_BEGIN_DECLS
 /* Object types */
 
 /**
+ * hb_gobject_blob_get_type:
+ *
  * Since: 0.9.2
  **/
 HB_EXTERN GType hb_gobject_blob_get_type (void);
 #define HB_GOBJECT_TYPE_BLOB (hb_gobject_blob_get_type ())
 
 /**
+ * hb_gobject_buffer_get_type:
+ *
  * Since: 0.9.2
  **/
 HB_EXTERN GType hb_gobject_buffer_get_type (void);
 #define HB_GOBJECT_TYPE_BUFFER (hb_gobject_buffer_get_type ())
 
 /**
+ * hb_gobject_face_get_type:
+ *
  * Since: 0.9.2
  **/
 HB_EXTERN GType hb_gobject_face_get_type (void);
 #define HB_GOBJECT_TYPE_FACE (hb_gobject_face_get_type ())
 
 /**
+ * hb_gobject_font_get_type:
+ *
  * Since: 0.9.2
  **/
 HB_EXTERN GType hb_gobject_font_get_type (void);
 #define HB_GOBJECT_TYPE_FONT (hb_gobject_font_get_type ())
 
 /**
+ * hb_gobject_font_funcs_get_type:
+ *
  * Since: 0.9.2
  **/
 HB_EXTERN GType hb_gobject_font_funcs_get_type (void);
@@ -77,6 +87,8 @@ HB_EXTERN GType hb_gobject_shape_plan_get_type (void);
 #define HB_GOBJECT_TYPE_SHAPE_PLAN (hb_gobject_shape_plan_get_type ())
 
 /**
+ * hb_gobject_unicode_funcs_get_type:
+ *
  * Since: 0.9.2
  **/
 HB_EXTERN GType hb_gobject_unicode_funcs_get_type (void);
index 39fc849..0b7e31b 100644 (file)
@@ -215,6 +215,28 @@ static inline bool get_glyph_from (const void *obj,
   return typed_obj->get_glyph (codepoint, glyph);
 }
 
+template <typename Type>
+static inline bool get_glyph_from_symbol (const void *obj,
+                                         hb_codepoint_t codepoint,
+                                         hb_codepoint_t *glyph)
+{
+  const Type *typed_obj = (const Type *) obj;
+  if (likely (typed_obj->get_glyph (codepoint, glyph)))
+    return true;
+
+  if (codepoint <= 0x00FFu)
+  {
+    /* For symbol-encoded OpenType fonts, we duplicate the
+     * U+F000..F0FF range at U+0000..U+00FF.  That's what
+     * Windows seems to do, and that's hinted about at:
+     * http://www.microsoft.com/typography/otspec/recom.htm
+     * under "Non-Standard (Symbol) Fonts". */
+    return typed_obj->get_glyph (0xF000u + codepoint, glyph);
+  }
+
+  return false;
+}
+
 struct hb_ot_face_cmap_accelerator_t
 {
   hb_cmap_get_glyph_func_t get_glyph_func;
@@ -231,6 +253,7 @@ struct hb_ot_face_cmap_accelerator_t
     const OT::CmapSubtable *subtable = NULL;
     const OT::CmapSubtableFormat14 *subtable_uvs = NULL;
 
+    bool symbol = false;
     /* 32-bit subtables. */
     if (!subtable) subtable = cmap->find_subtable (3, 10);
     if (!subtable) subtable = cmap->find_subtable (0, 6);
@@ -241,7 +264,7 @@ struct hb_ot_face_cmap_accelerator_t
     if (!subtable) subtable = cmap->find_subtable (0, 2);
     if (!subtable) subtable = cmap->find_subtable (0, 1);
     if (!subtable) subtable = cmap->find_subtable (0, 0);
-    if (!subtable) subtable = cmap->find_subtable (3, 0);
+    if (!subtable)(subtable = cmap->find_subtable (3, 0)) && (symbol = true);
     /* Meh. */
     if (!subtable) subtable = &OT::Null(OT::CmapSubtable);
 
@@ -258,18 +281,21 @@ struct hb_ot_face_cmap_accelerator_t
     this->uvs_table = subtable_uvs;
 
     this->get_glyph_data = subtable;
-    switch (subtable->u.format) {
-    /* Accelerate format 4 and format 12. */
-    default: this->get_glyph_func = get_glyph_from<OT::CmapSubtable>;          break;
-    case 12: this->get_glyph_func = get_glyph_from<OT::CmapSubtableFormat12>;  break;
-    case  4:
-      {
-        this->format4_accel.init (&subtable->u.format4);
-       this->get_glyph_data = &this->format4_accel;
-        this->get_glyph_func = this->format4_accel.get_glyph_func;
+    if (unlikely (symbol))
+      this->get_glyph_func = get_glyph_from_symbol<OT::CmapSubtable>;
+    else
+      switch (subtable->u.format) {
+      /* Accelerate format 4 and format 12. */
+      default: this->get_glyph_func = get_glyph_from<OT::CmapSubtable>;                break;
+      case 12: this->get_glyph_func = get_glyph_from<OT::CmapSubtableFormat12>;        break;
+      case  4:
+       {
+         this->format4_accel.init (&subtable->u.format4);
+         this->get_glyph_data = &this->format4_accel;
+         this->get_glyph_func = this->format4_accel.get_glyph_func;
+       }
+       break;
       }
-      break;
-    }
   }
 
   inline void fini (void)
index 7de56cf..22031f4 100644 (file)
@@ -265,16 +265,6 @@ struct Sequence
     TRACE_APPLY (this);
     unsigned int count = substitute.len;
 
-    /* TODO:
-     * Testing shows that Uniscribe actually allows zero-len susbstitute,
-     * which essentially deletes a glyph.  We don't allow for now.  It
-     * can be confusing to the client since the cluster from the deleted
-     * glyph won't be merged with any output cluster...  Also, currently
-     * buffer->move_to() makes assumptions about this too.  Perhaps fix
-     * in the future after figuring out what to do with the clusters.
-     */
-    if (unlikely (!count)) return_trace (false);
-
     /* Special-case to make it in-place and not consider this
      * as a "multiplied" substitution. */
     if (unlikely (count == 1))
@@ -282,6 +272,13 @@ struct Sequence
       c->replace_glyph (substitute.array[0]);
       return_trace (true);
     }
+    /* Spec disallows this, but Uniscribe allows it.
+     * https://github.com/behdad/harfbuzz/issues/253 */
+    else if (unlikely (count == 0))
+    {
+      c->buffer->delete_glyph ();
+      return_trace (true);
+    }
 
     unsigned int klass = _hb_glyph_info_is_ligature (&c->buffer->cur()) ?
                         HB_OT_LAYOUT_GLYPH_PROPS_BASE_GLYPH : 0;
index 56c5015..997d225 100644 (file)
@@ -996,10 +996,13 @@ static inline bool apply_lookup (hb_apply_context_t *c,
 
     /* Recursed lookup changed buffer len.  Adjust. */
 
-    /* end can't go back past the current match position.
-     * Note: this is only true because we do NOT allow MultipleSubst
-     * with zero sequence len. */
-    end = MAX (MIN((int) match_positions[idx] + 1, (int) new_len), int (end) + delta);
+    end = int (end) + delta;
+    if (end <= match_positions[idx])
+    {
+      /* There can't be any further changes. */
+      assert (end == match_positions[idx]);
+      break;
+    }
 
     unsigned int next = idx + 1; /* next now is the position after the recursed lookup. */
 
index 29749bc..b52c5f3 100644 (file)
@@ -93,6 +93,45 @@ _hb_ot_layout_create (hb_face_t *face)
      if (3 == layout->gdef->get_glyph_class (5))
        layout->gdef = &OT::Null(OT::GDEF);
     }
+    else if (0
+      /* sha1sum:96eda93f7d33e79962451c6c39a6b51ee893ce8c  tahoma.ttf from Windows 8 */
+      || (898 == gdef_len && 46470 == gpos_len && 12554 == gsub_len)
+      /* sha1sum:20928dc06014e0cd120b6fc942d0c3b1a46ac2bc  tahomabd.ttf from Windows 8 */
+      || (910 == gdef_len && 47732 == gpos_len && 12566 == gsub_len)
+      /* sha1sum:4f95b7e4878f60fa3a39ca269618dfde9721a79e  tahoma.ttf from Windows 8.1 */
+      || (928 == gdef_len && 59332 == gpos_len && 23298 == gsub_len)
+      /* sha1sum:6d400781948517c3c0441ba42acb309584b73033  tahomabd.ttf from Windows 8.1 */
+      || (940 == gdef_len && 60732 == gpos_len && 23310 == gsub_len)
+      /* sha1sum:e55fa2dfe957a9f7ec26be516a0e30b0c925f846  tahoma.ttf from Windows 10 */
+      || (994 == gdef_len && 60336 == gpos_len && 24474 == gsub_len)
+      /* sha1sum:7199385abb4c2cc81c83a151a7599b6368e92343  tahomabd.ttf from Windows 10 */
+      || (1006 == gdef_len && 61740 == gpos_len && 24470 == gsub_len)
+      /* sha1sum:b0d36cf5a2fbe746a3dd277bffc6756a820807a7  Tahoma.ttf from Mac OS X 10.9 */
+      || (832 == gdef_len && 47162 == gpos_len && 7324 == gsub_len)
+      /* sha1sum:12fc4538e84d461771b30c18b5eb6bd434e30fba  Tahoma Bold.ttf from Mac OS X 10.9 */
+      || (844 == gdef_len && 45474 == gpos_len && 7302 == gsub_len)
+      /* sha1sum:73da7f025b238a3f737aa1fde22577a6370f77b0  himalaya.ttf from Windows 8 */
+      || (192 == gdef_len && 7254 == gpos_len && 12638 == gsub_len)
+      /* sha1sum:6e80fd1c0b059bbee49272401583160dc1e6a427  himalaya.ttf from Windows 8.1 */
+      || (192 == gdef_len && 7254 == gpos_len && 12690 == gsub_len)
+      /* 8d9267aea9cd2c852ecfb9f12a6e834bfaeafe44  cantarell-fonts-0.0.21/otf/Cantarell-Regular.otf */
+      /* 983988ff7b47439ab79aeaf9a45bd4a2c5b9d371  cantarell-fonts-0.0.21/otf/Cantarell-Oblique.otf */
+      || (188 == gdef_len && 3852 == gpos_len && 248 == gsub_len)
+      /* 2c0c90c6f6087ffbfea76589c93113a9cbb0e75f  cantarell-fonts-0.0.21/otf/Cantarell-Bold.otf */
+      /* 55461f5b853c6da88069ffcdf7f4dd3f8d7e3e6b  cantarell-fonts-0.0.21/otf/Cantarell-Bold-Oblique.otf */
+      || (188 == gdef_len && 3426 == gpos_len && 264 == gsub_len)
+    )
+    {
+      /* Many versions of Tahoma have bad GDEF tables that incorrectly classify some spacing marks
+       * such as certain IPA symbols as glyph class 3. So do older versions of Microsoft Himalaya,
+       * and the version of Cantarell shipped by Ubuntu 16.04.
+       * Nuke the GDEF tables of these fonts to avoid unwanted width-zeroing.
+       * See https://bugzilla.mozilla.org/show_bug.cgi?id=1279925
+       *     https://bugzilla.mozilla.org/show_bug.cgi?id=1279693
+       *     https://bugzilla.mozilla.org/show_bug.cgi?id=1279875
+       */
+      layout->gdef = &OT::Null(OT::GDEF);
+    }
   }
 
   layout->gsub_lookup_count = layout->gsub->get_lookup_count ();
index 80d5044..736c7f7 100644 (file)
@@ -6,10 +6,10 @@
  *
  * on files with these headers:
  *
- * # ArabicShaping-8.0.0.txt
- * # Date: 2015-02-17, 23:33:00 GMT [RP]
- * # Blocks-8.0.0.txt
- * # Date: 2014-11-10, 23:04:00 GMT [KW]
+ * # ArabicShaping-9.0.0.txt
+ * # Date: 2016-02-24, 22:25:00 GMT [RP]
+ * # Blocks-9.0.0.txt
+ * # Date: 2016-02-05, 23:48:00 GMT [KW]
  * UnicodeData.txt does not have a header.
  */
 
@@ -19,6 +19,7 @@
 
 #define X      JOINING_TYPE_X
 #define R      JOINING_TYPE_R
+#define T      JOINING_TYPE_T
 #define U      JOINING_TYPE_U
 #define A      JOINING_GROUP_ALAPH
 #define DR     JOINING_GROUP_DALATH_RISH
@@ -76,9 +77,11 @@ static const uint8_t joining_table[] =
 
   /* Arabic Extended-A */
 
-  /* 08A0 */ D,D,D,D,D,D,D,D,D,D,R,R,R,U,R,D,D,R,R,D,D,
+  /* 08A0 */ D,D,D,D,D,D,D,D,D,D,R,R,R,U,R,D,D,R,R,D,D,X,D,D,D,R,D,D,D,D,X,X,
+  /* 08C0 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+  /* 08E0 */ X,X,U,
 
-#define joining_offset_0x1806u 693
+#define joining_offset_0x1806u 739
 
   /* Mongolian */
 
@@ -86,43 +89,48 @@ static const uint8_t joining_table[] =
   /* 1820 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
   /* 1840 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
   /* 1860 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,X,
-  /* 1880 */ U,U,U,U,U,U,U,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+  /* 1880 */ U,U,U,U,U,T,T,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
   /* 18A0 */ D,D,D,D,D,D,D,D,D,X,D,
 
-#define joining_offset_0x200cu 858
+#define joining_offset_0x200cu 904
 
   /* General Punctuation */
 
-  /* 2000 */                         U,C,
+  /* 2000 */                         U,C,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+  /* 2020 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+  /* 2040 */ X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
+  /* 2060 */ X,X,X,X,X,X,U,U,U,U,
 
-#define joining_offset_0x2066u 860
-
-  /* General Punctuation */
-
-  /* 2060 */             U,U,U,U,
-
-#define joining_offset_0xa840u 864
+#define joining_offset_0xa840u 998
 
   /* Phags-pa */
 
   /* A840 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
   /* A860 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,L,U,
 
-#define joining_offset_0x10ac0u 916
+#define joining_offset_0x10ac0u 1050
 
   /* Manichaean */
 
   /* 10AC0 */ D,D,D,D,D,R,U,R,U,R,R,U,U,L,R,R,R,R,R,D,D,D,D,L,D,D,D,D,D,R,D,D,
   /* 10AE0 */ D,R,U,U,R,X,X,X,X,X,X,D,D,D,D,R,
 
-#define joining_offset_0x10b80u 964
+#define joining_offset_0x10b80u 1098
 
   /* Psalter Pahlavi */
 
   /* 10B80 */ D,R,D,R,R,R,D,D,D,R,D,D,R,D,R,R,D,R,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
   /* 10BA0 */ X,X,X,X,X,X,X,X,X,R,R,R,R,D,D,U,
 
-}; /* Table items: 1012; occupancy: 57% */
+#define joining_offset_0x1e900u 1146
+
+  /* Adlam */
+
+  /* 1E900 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+  /* 1E920 */ D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
+  /* 1E940 */ D,D,D,D,
+
+}; /* Table items: 1214; occupancy: 54% */
 
 
 static unsigned int
@@ -131,7 +139,7 @@ joining_type (hb_codepoint_t u)
   switch (u >> 12)
   {
     case 0x0u:
-      if (hb_in_range (u, 0x0600u, 0x08B4u)) return joining_table[u - 0x0600u + joining_offset_0x0600u];
+      if (hb_in_range (u, 0x0600u, 0x08E2u)) return joining_table[u - 0x0600u + joining_offset_0x0600u];
       break;
 
     case 0x1u:
@@ -139,8 +147,7 @@ joining_type (hb_codepoint_t u)
       break;
 
     case 0x2u:
-      if (hb_in_range (u, 0x200Cu, 0x200Du)) return joining_table[u - 0x200Cu + joining_offset_0x200cu];
-      if (hb_in_range (u, 0x2066u, 0x2069u)) return joining_table[u - 0x2066u + joining_offset_0x2066u];
+      if (hb_in_range (u, 0x200Cu, 0x2069u)) return joining_table[u - 0x200Cu + joining_offset_0x200cu];
       break;
 
     case 0xAu:
@@ -152,6 +159,10 @@ joining_type (hb_codepoint_t u)
       if (hb_in_range (u, 0x10B80u, 0x10BAFu)) return joining_table[u - 0x10B80u + joining_offset_0x10b80u];
       break;
 
+    case 0x1Eu:
+      if (hb_in_range (u, 0x1E900u, 0x1E943u)) return joining_table[u - 0x1E900u + joining_offset_0x1e900u];
+      break;
+
     default:
       break;
   }
@@ -160,6 +171,7 @@ joining_type (hb_codepoint_t u)
 
 #undef X
 #undef R
+#undef T
 #undef U
 #undef A
 #undef DR
index f652d4f..5a7a265 100644 (file)
@@ -56,52 +56,52 @@ static const unsigned char _indic_syllable_machine_trans_keys[] = {
        5u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 
        5u, 7u, 7u, 7u, 8u, 8u, 1u, 16u, 8u, 13u, 4u, 8u, 6u, 6u, 16u, 16u, 
        4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 
-       16u, 16u, 8u, 8u, 1u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 
-       3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 
-       3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 
+       16u, 16u, 8u, 8u, 1u, 18u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 
+       3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 
+       3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 
        5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 
        3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
        3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 
-       5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 3u, 31u, 3u, 31u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 
-       3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 
-       3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 
-       5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 
-       3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
-       3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 
-       5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       4u, 14u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 
-       4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 
-       4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 5u, 10u, 
+       5u, 14u, 3u, 14u, 1u, 16u, 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 
+       1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 
+       1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
+       1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 
+       4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 
+       4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 
        9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 
        5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 
        4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
-       3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       4u, 14u, 3u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 
-       3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 
-       3u, 31u, 4u, 31u, 1u, 16u, 3u, 31u, 3u, 31u, 4u, 31u, 5u, 14u, 5u, 14u, 
-       5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 
-       3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
+       3u, 14u, 1u, 16u, 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 
+       1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
+       1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 9u, 10u, 9u, 9u, 
+       9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u, 
+       3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
+       3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 1u, 16u, 
+       4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 
+       3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 
+       1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 3u, 17u, 4u, 14u, 
+       3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 9u, 10u, 9u, 9u, 
+       9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u, 
+       3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
+       3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 1u, 16u, 
+       4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
+       3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 
+       3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 
+       1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u, 
+       1u, 17u, 4u, 14u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 
+       5u, 10u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 3u, 17u, 3u, 17u, 1u, 16u, 
        3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 
-       5u, 14u, 3u, 14u, 1u, 16u, 4u, 31u, 4u, 14u, 3u, 31u, 3u, 31u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 1u, 16u, 3u, 31u, 3u, 31u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 
-       1u, 16u, 3u, 31u, 1u, 31u, 3u, 31u, 1u, 31u, 4u, 14u, 5u, 10u, 9u, 10u, 
-       9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 1u, 16u, 3u, 31u, 3u, 31u, 
-       4u, 31u, 3u, 31u, 3u, 31u, 1u, 16u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 
-       4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 
-       3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 1u, 16u, 3u, 10u, 5u, 10u, 
-       5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 0
+       5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u, 
+       3u, 13u, 1u, 16u, 3u, 10u, 5u, 10u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 
+       9u, 10u, 9u, 9u, 5u, 10u, 0
 };
 
 static const char _indic_syllable_machine_key_spans[] = {
@@ -127,52 +127,52 @@ static const char _indic_syllable_machine_key_spans[] = {
        3, 4, 3, 1, 4, 3, 1, 4, 
        3, 1, 1, 16, 6, 5, 1, 1, 
        5, 1, 1, 5, 1, 1, 5, 1, 
-       1, 1, 31, 29, 29, 28, 16, 29
-       29, 28, 16, 29, 29, 28, 16, 29
-       29, 28, 16, 29, 29, 28, 10, 10, 
+       1, 1, 18, 15, 15, 14, 16, 15
+       15, 14, 16, 15, 15, 14, 16, 15
+       15, 14, 16, 15, 15, 14, 10, 10, 
        6, 2, 1, 2, 2, 1, 6, 11, 
        8, 6, 8, 11, 12, 12, 11, 10, 
        12, 11, 10, 12, 11, 10, 12, 11, 
-       10, 12, 16, 28, 11, 29, 29, 16, 
-       16, 16, 16, 16, 29, 29, 16, 16, 
-       16, 16, 16, 29, 29, 16, 16, 16, 
-       16, 16, 29, 29, 16, 16, 16, 16, 
-       16, 29, 29, 29, 29, 28, 16, 29, 
-       29, 28, 16, 29, 29, 28, 16, 29, 
-       29, 28, 16, 29, 29, 28, 10, 10, 
-       6, 2, 1, 2, 2, 1, 6, 11, 
-       8, 6, 8, 11, 12, 12, 11, 10, 
-       12, 11, 10, 12, 11, 10, 12, 11, 
-       10, 12, 16, 28, 11, 29, 29, 16, 
-       16, 16, 16, 16, 29, 29, 16, 16, 
-       16, 16, 16, 29, 29, 16, 16, 16, 
-       16, 16, 29, 29, 16, 16, 16, 16, 
-       11, 16, 29, 29, 28, 16, 29, 29, 
-       28, 16, 29, 29, 28, 16, 29, 29, 
-       28, 16, 29, 29, 28, 10, 10, 6, 
+       10, 12, 16, 11, 15, 15, 16, 16, 
+       16, 16, 16, 15, 15, 16, 16, 16, 
+       16, 16, 15, 15, 16, 16, 16, 16, 
+       16, 15, 15, 16, 16, 16, 16, 16, 
+       15, 15, 15, 15, 14, 16, 15, 15, 
+       14, 16, 15, 15, 14, 16, 15, 15, 
+       14, 16, 15, 15, 14, 10, 10, 6, 
        2, 1, 2, 2, 1, 6, 11, 8, 
        6, 8, 11, 12, 12, 11, 10, 12, 
        11, 10, 12, 11, 10, 12, 11, 10, 
-       12, 16, 28, 11, 29, 29, 16, 16, 
-       16, 16, 16, 29, 29, 16, 16, 16, 
-       16, 16, 29, 29, 16, 16, 16, 16, 
-       16, 29, 29, 16, 16, 16, 16, 16, 
-       11, 29, 11, 29, 29, 28, 16, 29, 
-       29, 28, 16, 29, 29, 28, 16, 29, 
-       29, 28, 16, 29, 29, 28, 10, 10, 
-       6, 2, 1, 2, 2, 1, 6, 11, 
-       8, 6, 8, 11, 12, 12, 11, 10, 
+       12, 16, 11, 15, 15, 16, 16, 16, 
+       16, 16, 15, 15, 16, 16, 16, 16, 
+       16, 15, 15, 16, 16, 16, 16, 16, 
+       15, 15, 16, 16, 16, 16, 11, 16, 
+       15, 15, 14, 16, 15, 15, 14, 16, 
+       15, 15, 14, 16, 15, 15, 14, 16, 
+       15, 15, 14, 10, 10, 6, 2, 1, 
+       2, 2, 1, 6, 11, 8, 6, 8, 
+       11, 12, 12, 11, 10, 12, 11, 10, 
+       12, 11, 10, 12, 11, 10, 12, 16, 
+       11, 15, 15, 16, 16, 16, 16, 16, 
+       15, 15, 16, 16, 16, 16, 16, 15, 
+       15, 16, 16, 16, 16, 16, 15, 15, 
+       16, 16, 16, 16, 16, 11, 15, 11, 
+       15, 15, 14, 16, 15, 15, 14, 16, 
+       15, 15, 14, 16, 15, 15, 14, 16, 
+       15, 15, 14, 10, 10, 6, 2, 1, 
+       2, 2, 1, 6, 11, 8, 6, 8, 
+       11, 12, 12, 11, 10, 12, 11, 10, 
+       12, 11, 10, 12, 11, 10, 12, 16, 
+       11, 15, 15, 16, 16, 16, 16, 16, 
+       15, 15, 16, 16, 16, 16, 16, 15, 
+       15, 16, 16, 16, 16, 16, 15, 15, 
+       16, 16, 16, 16, 16, 15, 17, 15, 
+       17, 11, 6, 2, 1, 2, 2, 1, 
+       6, 16, 15, 15, 14, 15, 15, 16, 
        12, 11, 10, 12, 11, 10, 12, 11, 
-       10, 12, 16, 28, 11, 29, 29, 16, 
-       16, 16, 16, 16, 29, 29, 16, 16, 
-       16, 16, 16, 29, 29, 16, 16, 16, 
-       16, 16, 29, 29, 16, 16, 16, 16, 
-       16, 29, 31, 29, 31, 11, 6, 2, 
-       1, 2, 2, 1, 6, 16, 29, 29, 
-       28, 29, 29, 16, 12, 11, 10, 12, 
-       11, 10, 12, 11, 10, 12, 11, 10, 
-       11, 8, 6, 8, 11, 16, 8, 6, 
-       6, 2, 1, 2, 2, 1, 6
+       10, 12, 11, 10, 11, 8, 6, 8, 
+       11, 16, 8, 6, 6, 2, 1, 2, 
+       2, 1, 6
 };
 
 static const short _indic_syllable_machine_index_offsets[] = {
@@ -198,52 +198,52 @@ static const short _indic_syllable_machine_index_offsets[] = {
        954, 958, 963, 967, 969, 974, 978, 980, 
        985, 989, 991, 993, 1010, 1017, 1023, 1025, 
        1027, 1033, 1035, 1037, 1043, 1045, 1047, 1053, 
-       1055, 1057, 1059, 1091, 1121, 1151, 1180, 1197
-       1227, 1257, 1286, 1303, 1333, 1363, 1392, 1409
-       1439, 1469, 1498, 1515, 1545, 1575, 1604, 1615
-       1626, 1633, 1636, 1638, 1641, 1644, 1646, 1653
-       1665, 1674, 1681, 1690, 1702, 1715, 1728, 1740
-       1751, 1764, 1776, 1787, 1800, 1812, 1823, 1836
-       1848, 1859, 1872, 1889, 1918, 1930, 1960, 1990
-       2007, 2024, 2041, 2058, 2075, 2105, 2135, 2152
-       2169, 2186, 2203, 2220, 2250, 2280, 2297, 2314
-       2331, 2348, 2365, 2395, 2425, 2442, 2459, 2476
-       2493, 2510, 2540, 2570, 2600, 2630, 2659, 2676
-       2706, 2736, 2765, 2782, 2812, 2842, 2871, 2888
-       2918, 2948, 2977, 2994, 3024, 3054, 3083, 3094
-       3105, 3112, 3115, 3117, 3120, 3123, 3125, 3132, 
-       3144, 3153, 3160, 3169, 3181, 3194, 3207, 3219
-       3230, 3243, 3255, 3266, 3279, 3291, 3302, 3315, 
-       3327, 3338, 3351, 3368, 3397, 3409, 3439, 3469
-       3486, 3503, 3520, 3537, 3554, 3584, 3614, 3631
-       3648, 3665, 3682, 3699, 3729, 3759, 3776, 3793
-       3810, 3827, 3844, 3874, 3904, 3921, 3938, 3955
-       3972, 3984, 4001, 4031, 4061, 4090, 4107, 4137
-       4167, 4196, 4213, 4243, 4273, 4302, 4319, 4349
-       4379, 4408, 4425, 4455, 4485, 4514, 4525, 4536
-       4543, 4546, 4548, 4551, 4554, 4556, 4563, 4575
-       4584, 4591, 4600, 4612, 4625, 4638, 4650, 4661
-       4674, 4686, 4697, 4710, 4722, 4733, 4746, 4758
-       4769, 4782, 4799, 4828, 4840, 4870, 4900, 4917
-       4934, 4951, 4968, 4985, 5015, 5045, 5062, 5079
-       5096, 5113, 5130, 5160, 5190, 5207, 5224, 5241
-       5258, 5275, 5305, 5335, 5352, 5369, 5386, 5403
-       5420, 5432, 5462, 5474, 5504, 5534, 5563, 5580
-       5610, 5640, 5669, 5686, 5716, 5746, 5775, 5792
-       5822, 5852, 5881, 5898, 5928, 5958, 5987, 5998
-       6009, 6016, 6019, 6021, 6024, 6027, 6029, 6036, 
-       6048, 6057, 6064, 6073, 6085, 6098, 6111, 6123
-       6134, 6147, 6159, 6170, 6183, 6195, 6206, 6219
-       6231, 6242, 6255, 6272, 6301, 6313, 6343, 6373
-       6390, 6407, 6424, 6441, 6458, 6488, 6518, 6535
-       6552, 6569, 6586, 6603, 6633, 6663, 6680, 6697
-       6714, 6731, 6748, 6778, 6808, 6825, 6842, 6859
-       6876, 6893, 6923, 6955, 6985, 7017, 7029, 7036
-       7039, 7041, 7044, 7047, 7049, 7056, 7073, 7103
-       7133, 7162, 7192, 7222, 7239, 7252, 7264, 7275
-       7288, 7300, 7311, 7324, 7336, 7347, 7360, 7372
-       7383, 7395, 7404, 7411, 7420, 7432, 7449, 7458
-       7465, 7472, 7475, 7477, 7480, 7483, 7485
+       1055, 1057, 1059, 1078, 1094, 1110, 1125, 1142
+       1158, 1174, 1189, 1206, 1222, 1238, 1253, 1270
+       1286, 1302, 1317, 1334, 1350, 1366, 1381, 1392
+       1403, 1410, 1413, 1415, 1418, 1421, 1423, 1430
+       1442, 1451, 1458, 1467, 1479, 1492, 1505, 1517
+       1528, 1541, 1553, 1564, 1577, 1589, 1600, 1613
+       1625, 1636, 1649, 1666, 1678, 1694, 1710, 1727
+       1744, 1761, 1778, 1795, 1811, 1827, 1844, 1861
+       1878, 1895, 1912, 1928, 1944, 1961, 1978, 1995
+       2012, 2029, 2045, 2061, 2078, 2095, 2112, 2129
+       2146, 2162, 2178, 2194, 2210, 2225, 2242, 2258
+       2274, 2289, 2306, 2322, 2338, 2353, 2370, 2386
+       2402, 2417, 2434, 2450, 2466, 2481, 2492, 2503
+       2510, 2513, 2515, 2518, 2521, 2523, 2530, 2542, 
+       2551, 2558, 2567, 2579, 2592, 2605, 2617, 2628
+       2641, 2653, 2664, 2677, 2689, 2700, 2713, 2725, 
+       2736, 2749, 2766, 2778, 2794, 2810, 2827, 2844
+       2861, 2878, 2895, 2911, 2927, 2944, 2961, 2978
+       2995, 3012, 3028, 3044, 3061, 3078, 3095, 3112
+       3129, 3145, 3161, 3178, 3195, 3212, 3229, 3241
+       3258, 3274, 3290, 3305, 3322, 3338, 3354, 3369
+       3386, 3402, 3418, 3433, 3450, 3466, 3482, 3497
+       3514, 3530, 3546, 3561, 3572, 3583, 3590, 3593
+       3595, 3598, 3601, 3603, 3610, 3622, 3631, 3638
+       3647, 3659, 3672, 3685, 3697, 3708, 3721, 3733
+       3744, 3757, 3769, 3780, 3793, 3805, 3816, 3829
+       3846, 3858, 3874, 3890, 3907, 3924, 3941, 3958
+       3975, 3991, 4007, 4024, 4041, 4058, 4075, 4092
+       4108, 4124, 4141, 4158, 4175, 4192, 4209, 4225
+       4241, 4258, 4275, 4292, 4309, 4326, 4338, 4354
+       4366, 4382, 4398, 4413, 4430, 4446, 4462, 4477
+       4494, 4510, 4526, 4541, 4558, 4574, 4590, 4605
+       4622, 4638, 4654, 4669, 4680, 4691, 4698, 4701
+       4703, 4706, 4709, 4711, 4718, 4730, 4739, 4746, 
+       4755, 4767, 4780, 4793, 4805, 4816, 4829, 4841
+       4852, 4865, 4877, 4888, 4901, 4913, 4924, 4937
+       4954, 4966, 4982, 4998, 5015, 5032, 5049, 5066
+       5083, 5099, 5115, 5132, 5149, 5166, 5183, 5200
+       5216, 5232, 5249, 5266, 5283, 5300, 5317, 5333
+       5349, 5366, 5383, 5400, 5417, 5434, 5450, 5468
+       5484, 5502, 5514, 5521, 5524, 5526, 5529, 5532
+       5534, 5541, 5558, 5574, 5590, 5605, 5621, 5637
+       5654, 5667, 5679, 5690, 5703, 5715, 5726, 5739
+       5751, 5762, 5775, 5787, 5798, 5810, 5819, 5826
+       5835, 5847, 5864, 5873, 5880, 5887, 5890, 5892
+       5895, 5898, 5900
 };
 
 static const short _indic_syllable_machine_indicies[] = {
@@ -381,882 +381,684 @@ static const short _indic_syllable_machine_indicies[] = {
        161, 161, 162, 157, 0, 183, 0, 184, 
        0, 186, 185, 188, 189, 190, 191, 192, 
        193, 84, 79, 194, 195, 196, 196, 156, 
-       197, 198, 199, 200, 201, 187, 187, 187, 
-       187, 187, 187, 187, 187, 187, 187, 187, 
-       187, 202, 187, 204, 205, 206, 207, 6, 
-       1, 208, 209, 203, 203, 38, 210, 203, 
-       203, 211, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 212, 
-       203, 213, 205, 214, 214, 6, 1, 208, 
-       209, 203, 203, 203, 210, 203, 203, 211, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 212, 203, 205, 
-       214, 214, 6, 1, 208, 209, 203, 203, 
-       203, 210, 203, 203, 211, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 212, 203, 215, 203, 203, 203, 
-       19, 216, 203, 1, 208, 209, 203, 203, 
-       203, 217, 203, 215, 203, 218, 219, 220, 
-       221, 6, 1, 208, 209, 203, 203, 36, 
-       222, 203, 203, 211, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 212, 203, 223, 219, 224, 224, 6, 
-       1, 208, 209, 203, 203, 203, 222, 203, 
-       203, 211, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 212, 
-       203, 219, 224, 224, 6, 1, 208, 209, 
-       203, 203, 203, 222, 203, 203, 211, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 212, 203, 225, 203, 
-       203, 203, 19, 226, 203, 1, 208, 209, 
-       203, 203, 203, 217, 203, 225, 203, 227, 
-       228, 229, 230, 6, 1, 208, 209, 203, 
-       203, 34, 231, 203, 203, 211, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 212, 203, 232, 228, 233, 
-       233, 6, 1, 208, 209, 203, 203, 203, 
-       231, 203, 203, 211, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 212, 203, 228, 233, 233, 6, 1, 
-       208, 209, 203, 203, 203, 231, 203, 203, 
-       211, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 212, 203, 
-       234, 203, 203, 203, 19, 235, 203, 1, 
-       208, 209, 203, 203, 203, 217, 203, 234, 
-       203, 236, 237, 238, 239, 6, 1, 208, 
-       209, 203, 203, 32, 240, 203, 203, 211, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 212, 203, 241, 
-       237, 242, 242, 6, 1, 208, 209, 203, 
-       203, 203, 240, 203, 203, 211, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 212, 203, 237, 242, 242, 
-       6, 1, 208, 209, 203, 203, 203, 240, 
-       203, 203, 211, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       212, 203, 243, 203, 203, 203, 19, 244, 
-       203, 1, 208, 209, 203, 203, 203, 217, 
-       203, 243, 203, 245, 246, 247, 248, 6, 
-       1, 208, 209, 203, 203, 30, 249, 203, 
-       203, 211, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 212, 
-       203, 250, 246, 251, 251, 6, 1, 208, 
-       209, 203, 203, 203, 249, 203, 203, 211, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 212, 203, 246, 
-       251, 251, 6, 1, 208, 209, 203, 203, 
-       203, 249, 203, 203, 211, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 212, 203, 19, 252, 203, 1, 
-       208, 209, 203, 203, 203, 217, 203, 253, 
-       253, 203, 1, 208, 209, 203, 203, 203, 
-       217, 203, 254, 203, 203, 255, 208, 209, 
-       203, 208, 209, 203, 256, 203, 208, 257, 
-       203, 208, 258, 203, 208, 203, 254, 203, 
-       203, 203, 208, 209, 203, 259, 203, 260, 
-       261, 203, 1, 208, 209, 203, 203, 4, 
-       203, 3, 203, 253, 253, 203, 1, 208, 
-       209, 203, 253, 253, 203, 1, 208, 209, 
-       203, 259, 203, 253, 253, 203, 1, 208, 
-       209, 203, 259, 203, 260, 253, 203, 1, 
-       208, 209, 203, 203, 4, 203, 19, 203, 
-       262, 262, 6, 1, 208, 209, 203, 203, 
-       203, 217, 203, 263, 28, 264, 265, 9, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       28, 264, 265, 9, 1, 208, 209, 203, 
-       203, 203, 217, 203, 264, 264, 9, 1, 
-       208, 209, 203, 203, 203, 217, 203, 266, 
-       25, 267, 268, 12, 1, 208, 209, 203, 
-       203, 203, 217, 203, 25, 267, 268, 12, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       267, 267, 12, 1, 208, 209, 203, 203, 
-       203, 217, 203, 269, 22, 270, 271, 15, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       22, 270, 271, 15, 1, 208, 209, 203, 
-       203, 203, 217, 203, 270, 270, 15, 1, 
-       208, 209, 203, 203, 203, 217, 203, 272, 
-       19, 253, 273, 203, 1, 208, 209, 203, 
-       203, 203, 217, 203, 19, 253, 273, 203, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       253, 274, 203, 1, 208, 209, 203, 203, 
-       203, 217, 203, 19, 203, 253, 253, 203, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       2, 3, 203, 203, 19, 252, 203, 1, 
-       208, 209, 203, 203, 203, 217, 203, 2, 
-       203, 246, 251, 251, 6, 1, 208, 209, 
-       203, 203, 203, 249, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 212, 203, 246, 251, 
-       251, 6, 1, 208, 209, 203, 203, 203, 
-       249, 203, 245, 246, 251, 251, 6, 1, 
-       208, 209, 203, 203, 203, 249, 203, 203, 
-       211, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 212, 203, 
-       245, 246, 247, 251, 6, 1, 208, 209, 
-       203, 203, 30, 249, 203, 203, 211, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 212, 203, 243, 203, 
-       275, 203, 262, 262, 6, 1, 208, 209, 
-       203, 203, 203, 217, 203, 243, 203, 243, 
-       203, 203, 203, 253, 253, 203, 1, 208, 
-       209, 203, 203, 203, 217, 203, 243, 203, 
-       243, 203, 203, 203, 253, 276, 203, 1, 
-       208, 209, 203, 203, 203, 217, 203, 243, 
-       203, 243, 203, 275, 203, 253, 253, 203, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       243, 203, 243, 3, 203, 203, 19, 244, 
-       203, 1, 208, 209, 203, 203, 203, 217, 
-       203, 243, 203, 236, 237, 242, 242, 6, 
-       1, 208, 209, 203, 203, 203, 240, 203, 
-       203, 211, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 212, 
-       203, 236, 237, 238, 242, 6, 1, 208, 
-       209, 203, 203, 32, 240, 203, 203, 211, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 212, 203, 234, 
-       203, 277, 203, 262, 262, 6, 1, 208, 
-       209, 203, 203, 203, 217, 203, 234, 203, 
-       234, 203, 203, 203, 253, 253, 203, 1, 
-       208, 209, 203, 203, 203, 217, 203, 234, 
-       203, 234, 203, 203, 203, 253, 278, 203, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       234, 203, 234, 203, 277, 203, 253, 253, 
-       203, 1, 208, 209, 203, 203, 203, 217, 
-       203, 234, 203, 234, 3, 203, 203, 19, 
-       235, 203, 1, 208, 209, 203, 203, 203, 
-       217, 203, 234, 203, 227, 228, 233, 233, 
-       6, 1, 208, 209, 203, 203, 203, 231, 
-       203, 203, 211, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       212, 203, 227, 228, 229, 233, 6, 1, 
-       208, 209, 203, 203, 34, 231, 203, 203, 
-       211, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 212, 203, 
-       225, 203, 279, 203, 262, 262, 6, 1, 
-       208, 209, 203, 203, 203, 217, 203, 225, 
-       203, 225, 203, 203, 203, 253, 253, 203, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       225, 203, 225, 203, 203, 203, 253, 280, 
-       203, 1, 208, 209, 203, 203, 203, 217, 
-       203, 225, 203, 225, 203, 279, 203, 253, 
-       253, 203, 1, 208, 209, 203, 203, 203, 
-       217, 203, 225, 203, 225, 3, 203, 203, 
-       19, 226, 203, 1, 208, 209, 203, 203, 
-       203, 217, 203, 225, 203, 218, 219, 224, 
-       224, 6, 1, 208, 209, 203, 203, 203, 
-       222, 203, 203, 211, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 212, 203, 218, 219, 220, 224, 6, 
-       1, 208, 209, 203, 203, 36, 222, 203, 
-       203, 211, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 212, 
-       203, 215, 203, 281, 203, 262, 262, 6, 
-       1, 208, 209, 203, 203, 203, 217, 203, 
-       215, 203, 215, 203, 203, 203, 253, 253, 
-       203, 1, 208, 209, 203, 203, 203, 217, 
-       203, 215, 203, 215, 203, 203, 203, 253, 
-       282, 203, 1, 208, 209, 203, 203, 203, 
-       217, 203, 215, 203, 215, 203, 281, 203, 
-       253, 253, 203, 1, 208, 209, 203, 203, 
-       203, 217, 203, 215, 203, 215, 3, 203, 
-       203, 19, 216, 203, 1, 208, 209, 203, 
-       203, 203, 217, 203, 215, 203, 204, 205, 
-       214, 214, 6, 1, 208, 209, 203, 203, 
-       203, 210, 203, 203, 211, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 212, 203, 204, 205, 206, 214, 
-       6, 1, 208, 209, 203, 203, 38, 210, 
-       203, 203, 211, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       212, 203, 284, 285, 286, 287, 45, 40, 
-       288, 289, 283, 283, 77, 290, 283, 283, 
-       291, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 292, 283, 
-       293, 285, 294, 287, 45, 40, 288, 289, 
-       283, 283, 283, 290, 283, 283, 291, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 292, 283, 285, 294, 
-       287, 45, 40, 288, 289, 283, 283, 283, 
-       290, 283, 283, 291, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 292, 283, 295, 283, 283, 283, 58, 
-       296, 283, 40, 288, 289, 283, 283, 283, 
-       297, 283, 295, 283, 298, 299, 300, 301, 
-       45, 40, 288, 289, 283, 283, 75, 302, 
-       283, 283, 291, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       292, 283, 303, 299, 304, 304, 45, 40, 
-       288, 289, 283, 283, 283, 302, 283, 283, 
-       291, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 292, 283, 
-       299, 304, 304, 45, 40, 288, 289, 283, 
-       283, 283, 302, 283, 283, 291, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 292, 283, 305, 283, 283, 
-       283, 58, 306, 283, 40, 288, 289, 283, 
-       283, 283, 297, 283, 305, 283, 307, 308, 
-       309, 310, 45, 40, 288, 289, 283, 283, 
-       73, 311, 283, 283, 291, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 292, 283, 312, 308, 313, 313, 
-       45, 40, 288, 289, 283, 283, 283, 311, 
-       283, 283, 291, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       292, 283, 308, 313, 313, 45, 40, 288, 
-       289, 283, 283, 283, 311, 283, 283, 291, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 292, 283, 314, 
-       283, 283, 283, 58, 315, 283, 40, 288, 
-       289, 283, 283, 283, 297, 283, 314, 283, 
-       316, 317, 318, 319, 45, 40, 288, 289, 
-       283, 283, 71, 320, 283, 283, 291, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 292, 283, 321, 317, 
-       322, 322, 45, 40, 288, 289, 283, 283, 
-       283, 320, 283, 283, 291, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 292, 283, 317, 322, 322, 45, 
-       40, 288, 289, 283, 283, 283, 320, 283, 
-       283, 291, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 292, 
-       283, 323, 283, 283, 283, 58, 324, 283, 
-       40, 288, 289, 283, 283, 283, 297, 283, 
-       323, 283, 325, 326, 327, 328, 45, 40, 
-       288, 289, 283, 283, 69, 329, 283, 283, 
-       291, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 292, 283, 
-       330, 326, 331, 331, 45, 40, 288, 289, 
-       283, 283, 283, 329, 283, 283, 291, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 292, 283, 326, 331, 
-       331, 45, 40, 288, 289, 283, 283, 283, 
-       329, 283, 283, 291, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 292, 283, 58, 332, 283, 40, 288, 
-       289, 283, 283, 283, 297, 283, 333, 333, 
-       283, 40, 288, 289, 283, 283, 283, 297, 
-       283, 334, 283, 283, 335, 288, 289, 283, 
-       288, 289, 283, 336, 283, 288, 337, 283, 
-       288, 338, 283, 288, 283, 334, 283, 283, 
-       283, 288, 289, 283, 339, 283, 340, 341, 
-       283, 40, 288, 289, 283, 283, 43, 283, 
-       42, 283, 333, 333, 283, 40, 288, 289, 
-       283, 333, 333, 283, 40, 288, 289, 283, 
-       339, 283, 333, 333, 283, 40, 288, 289, 
-       283, 339, 283, 340, 333, 283, 40, 288, 
-       289, 283, 283, 43, 283, 58, 283, 342, 
-       342, 45, 40, 288, 289, 283, 283, 283, 
-       297, 283, 343, 67, 344, 345, 48, 40, 
-       288, 289, 283, 283, 283, 297, 283, 67, 
-       344, 345, 48, 40, 288, 289, 283, 283, 
-       283, 297, 283, 344, 344, 48, 40, 288, 
-       289, 283, 283, 283, 297, 283, 346, 64, 
-       347, 348, 51, 40, 288, 289, 283, 283, 
-       283, 297, 283, 64, 347, 348, 51, 40, 
-       288, 289, 283, 283, 283, 297, 283, 347, 
-       347, 51, 40, 288, 289, 283, 283, 283, 
-       297, 283, 349, 61, 350, 351, 54, 40, 
-       288, 289, 283, 283, 283, 297, 283, 61, 
-       350, 351, 54, 40, 288, 289, 283, 283, 
-       283, 297, 283, 350, 350, 54, 40, 288, 
-       289, 283, 283, 283, 297, 283, 352, 58, 
-       333, 353, 283, 40, 288, 289, 283, 283, 
-       283, 297, 283, 58, 333, 353, 283, 40, 
-       288, 289, 283, 283, 283, 297, 283, 333, 
-       354, 283, 40, 288, 289, 283, 283, 283, 
-       297, 283, 58, 283, 333, 333, 283, 40, 
-       288, 289, 283, 283, 283, 297, 283, 41, 
-       42, 283, 283, 58, 332, 283, 40, 288, 
-       289, 283, 283, 283, 297, 283, 41, 283, 
-       326, 331, 331, 45, 40, 288, 289, 283, 
-       283, 283, 329, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 292, 283, 326, 331, 331, 
-       45, 40, 288, 289, 283, 283, 283, 329, 
-       283, 325, 326, 331, 331, 45, 40, 288, 
-       289, 283, 283, 283, 329, 283, 283, 291, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 292, 283, 325, 
-       326, 327, 331, 45, 40, 288, 289, 283, 
-       283, 69, 329, 283, 283, 291, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 292, 283, 323, 283, 355, 
-       283, 342, 342, 45, 40, 288, 289, 283, 
-       283, 283, 297, 283, 323, 283, 323, 283, 
-       283, 283, 333, 333, 283, 40, 288, 289, 
-       283, 283, 283, 297, 283, 323, 283, 323, 
-       283, 283, 283, 333, 356, 283, 40, 288, 
-       289, 283, 283, 283, 297, 283, 323, 283, 
-       323, 283, 355, 283, 333, 333, 283, 40, 
-       288, 289, 283, 283, 283, 297, 283, 323, 
-       283, 323, 42, 283, 283, 58, 324, 283, 
-       40, 288, 289, 283, 283, 283, 297, 283, 
-       323, 283, 316, 317, 322, 322, 45, 40, 
-       288, 289, 283, 283, 283, 320, 283, 283, 
-       291, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 292, 283, 
-       316, 317, 318, 322, 45, 40, 288, 289, 
-       283, 283, 71, 320, 283, 283, 291, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 292, 283, 314, 283, 
-       357, 283, 342, 342, 45, 40, 288, 289, 
-       283, 283, 283, 297, 283, 314, 283, 314, 
-       283, 283, 283, 333, 333, 283, 40, 288, 
-       289, 283, 283, 283, 297, 283, 314, 283, 
-       314, 283, 283, 283, 333, 358, 283, 40, 
-       288, 289, 283, 283, 283, 297, 283, 314, 
-       283, 314, 283, 357, 283, 333, 333, 283, 
-       40, 288, 289, 283, 283, 283, 297, 283, 
-       314, 283, 314, 42, 283, 283, 58, 315, 
-       283, 40, 288, 289, 283, 283, 283, 297, 
-       283, 314, 283, 307, 308, 313, 313, 45, 
-       40, 288, 289, 283, 283, 283, 311, 283, 
-       283, 291, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 292, 
-       283, 307, 308, 309, 313, 45, 40, 288, 
-       289, 283, 283, 73, 311, 283, 283, 291, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 292, 283, 305, 
-       283, 359, 283, 342, 342, 45, 40, 288, 
-       289, 283, 283, 283, 297, 283, 305, 283, 
-       305, 283, 283, 283, 333, 333, 283, 40, 
-       288, 289, 283, 283, 283, 297, 283, 305, 
-       283, 305, 283, 283, 283, 333, 360, 283, 
-       40, 288, 289, 283, 283, 283, 297, 283, 
-       305, 283, 305, 283, 359, 283, 333, 333, 
-       283, 40, 288, 289, 283, 283, 283, 297, 
-       283, 305, 283, 305, 42, 283, 283, 58, 
-       306, 283, 40, 288, 289, 283, 283, 283, 
-       297, 283, 305, 283, 298, 299, 304, 304, 
-       45, 40, 288, 289, 283, 283, 283, 302, 
-       283, 283, 291, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       292, 283, 298, 299, 300, 304, 45, 40, 
-       288, 289, 283, 283, 75, 302, 283, 283, 
-       291, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 283, 292, 283, 
-       295, 283, 361, 283, 342, 342, 45, 40, 
-       288, 289, 283, 283, 283, 297, 283, 295, 
-       283, 295, 283, 283, 283, 333, 333, 283, 
-       40, 288, 289, 283, 283, 283, 297, 283, 
-       295, 283, 295, 283, 283, 283, 333, 362, 
-       283, 40, 288, 289, 283, 283, 283, 297, 
-       283, 295, 283, 295, 283, 361, 283, 333, 
-       333, 283, 40, 288, 289, 283, 283, 283, 
-       297, 283, 295, 283, 76, 44, 44, 45, 
-       40, 283, 283, 283, 283, 283, 76, 283, 
-       295, 42, 283, 283, 58, 296, 283, 40, 
-       288, 289, 283, 283, 283, 297, 283, 295, 
-       283, 284, 285, 294, 287, 45, 40, 288, 
-       289, 283, 283, 283, 290, 283, 283, 291, 
-       283, 283, 283, 283, 283, 283, 283, 283, 
-       283, 283, 283, 283, 283, 292, 283, 364, 
-       191, 365, 365, 84, 79, 194, 195, 363, 
-       363, 363, 197, 363, 363, 200, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 202, 363, 191, 365, 365, 
-       84, 79, 194, 195, 363, 363, 363, 197, 
-       363, 363, 200, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       202, 363, 366, 363, 363, 363, 98, 367, 
-       363, 79, 194, 195, 363, 363, 363, 368, 
-       363, 366, 363, 369, 370, 371, 372, 84, 
-       79, 194, 195, 363, 363, 115, 373, 363, 
-       363, 200, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 202, 
-       363, 374, 370, 375, 375, 84, 79, 194, 
-       195, 363, 363, 363, 373, 363, 363, 200, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 202, 363, 370, 
-       375, 375, 84, 79, 194, 195, 363, 363, 
-       363, 373, 363, 363, 200, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 202, 363, 376, 363, 363, 363, 
-       98, 377, 363, 79, 194, 195, 363, 363, 
-       363, 368, 363, 376, 363, 378, 379, 380, 
-       381, 84, 79, 194, 195, 363, 363, 113, 
-       382, 363, 363, 200, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 202, 363, 383, 379, 384, 384, 84, 
-       79, 194, 195, 363, 363, 363, 382, 363, 
-       363, 200, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 202, 
-       363, 379, 384, 384, 84, 79, 194, 195, 
-       363, 363, 363, 382, 363, 363, 200, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 202, 363, 385, 363, 
-       363, 363, 98, 386, 363, 79, 194, 195, 
-       363, 363, 363, 368, 363, 385, 363, 387, 
-       388, 389, 390, 84, 79, 194, 195, 363, 
-       363, 111, 391, 363, 363, 200, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 202, 363, 392, 388, 393, 
-       393, 84, 79, 194, 195, 363, 363, 363, 
-       391, 363, 363, 200, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 202, 363, 388, 393, 393, 84, 79, 
-       194, 195, 363, 363, 363, 391, 363, 363, 
-       200, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 202, 363, 
-       394, 363, 363, 363, 98, 395, 363, 79, 
-       194, 195, 363, 363, 363, 368, 363, 394, 
-       363, 396, 397, 398, 399, 84, 79, 194, 
-       195, 363, 363, 109, 400, 363, 363, 200, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 202, 363, 401, 
-       397, 402, 402, 84, 79, 194, 195, 363, 
-       363, 363, 400, 363, 363, 200, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 202, 363, 397, 402, 402, 
-       84, 79, 194, 195, 363, 363, 363, 400, 
-       363, 363, 200, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       202, 363, 98, 403, 363, 79, 194, 195, 
-       363, 363, 363, 368, 363, 404, 404, 363, 
-       79, 194, 195, 363, 363, 363, 368, 363, 
-       405, 363, 363, 406, 194, 195, 363, 194, 
-       195, 363, 407, 363, 194, 408, 363, 194, 
-       409, 363, 194, 363, 405, 363, 363, 363, 
-       194, 195, 363, 410, 363, 411, 412, 363, 
-       79, 194, 195, 363, 363, 82, 363, 81, 
-       363, 404, 404, 363, 79, 194, 195, 363, 
-       404, 404, 363, 79, 194, 195, 363, 410, 
-       363, 404, 404, 363, 79, 194, 195, 363, 
-       410, 363, 411, 404, 363, 79, 194, 195, 
-       363, 363, 82, 363, 98, 363, 413, 413, 
-       84, 79, 194, 195, 363, 363, 363, 368, 
-       363, 414, 107, 415, 416, 88, 79, 194, 
-       195, 363, 363, 363, 368, 363, 107, 415, 
-       416, 88, 79, 194, 195, 363, 363, 363, 
-       368, 363, 415, 415, 88, 79, 194, 195, 
-       363, 363, 363, 368, 363, 417, 104, 418, 
-       419, 91, 79, 194, 195, 363, 363, 363, 
-       368, 363, 104, 418, 419, 91, 79, 194, 
-       195, 363, 363, 363, 368, 363, 418, 418, 
-       91, 79, 194, 195, 363, 363, 363, 368, 
-       363, 420, 101, 421, 422, 94, 79, 194, 
-       195, 363, 363, 363, 368, 363, 101, 421, 
-       422, 94, 79, 194, 195, 363, 363, 363, 
-       368, 363, 421, 421, 94, 79, 194, 195, 
-       363, 363, 363, 368, 363, 423, 98, 404, 
-       424, 363, 79, 194, 195, 363, 363, 363, 
-       368, 363, 98, 404, 424, 363, 79, 194, 
-       195, 363, 363, 363, 368, 363, 404, 425, 
-       363, 79, 194, 195, 363, 363, 363, 368, 
-       363, 98, 363, 404, 404, 363, 79, 194, 
-       195, 363, 363, 363, 368, 363, 80, 81, 
-       363, 363, 98, 403, 363, 79, 194, 195, 
-       363, 363, 363, 368, 363, 80, 363, 397, 
-       402, 402, 84, 79, 194, 195, 363, 363, 
-       363, 400, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 202, 363, 397, 402, 402, 84, 
-       79, 194, 195, 363, 363, 363, 400, 363, 
-       396, 397, 402, 402, 84, 79, 194, 195, 
-       363, 363, 363, 400, 363, 363, 200, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 202, 363, 396, 397, 
-       398, 402, 84, 79, 194, 195, 363, 363, 
-       109, 400, 363, 363, 200, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 202, 363, 394, 363, 426, 363, 
-       413, 413, 84, 79, 194, 195, 363, 363, 
-       363, 368, 363, 394, 363, 394, 363, 363, 
-       363, 404, 404, 363, 79, 194, 195, 363, 
-       363, 363, 368, 363, 394, 363, 394, 363, 
-       363, 363, 404, 427, 363, 79, 194, 195, 
-       363, 363, 363, 368, 363, 394, 363, 394, 
-       363, 426, 363, 404, 404, 363, 79, 194, 
-       195, 363, 363, 363, 368, 363, 394, 363, 
-       394, 81, 363, 363, 98, 395, 363, 79, 
-       194, 195, 363, 363, 363, 368, 363, 394, 
-       363, 387, 388, 393, 393, 84, 79, 194, 
-       195, 363, 363, 363, 391, 363, 363, 200, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 202, 363, 387, 
-       388, 389, 393, 84, 79, 194, 195, 363, 
-       363, 111, 391, 363, 363, 200, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 202, 363, 385, 363, 428, 
-       363, 413, 413, 84, 79, 194, 195, 363, 
-       363, 363, 368, 363, 385, 363, 385, 363, 
-       363, 363, 404, 404, 363, 79, 194, 195, 
-       363, 363, 363, 368, 363, 385, 363, 385, 
-       363, 363, 363, 404, 429, 363, 79, 194, 
-       195, 363, 363, 363, 368, 363, 385, 363, 
-       385, 363, 428, 363, 404, 404, 363, 79, 
-       194, 195, 363, 363, 363, 368, 363, 385, 
-       363, 385, 81, 363, 363, 98, 386, 363, 
-       79, 194, 195, 363, 363, 363, 368, 363, 
-       385, 363, 378, 379, 384, 384, 84, 79, 
-       194, 195, 363, 363, 363, 382, 363, 363, 
-       200, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 202, 363, 
-       378, 379, 380, 384, 84, 79, 194, 195, 
-       363, 363, 113, 382, 363, 363, 200, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 202, 363, 376, 363, 
-       430, 363, 413, 413, 84, 79, 194, 195, 
-       363, 363, 363, 368, 363, 376, 363, 376, 
-       363, 363, 363, 404, 404, 363, 79, 194, 
-       195, 363, 363, 363, 368, 363, 376, 363, 
-       376, 363, 363, 363, 404, 431, 363, 79, 
-       194, 195, 363, 363, 363, 368, 363, 376, 
-       363, 376, 363, 430, 363, 404, 404, 363, 
-       79, 194, 195, 363, 363, 363, 368, 363, 
-       376, 363, 376, 81, 363, 363, 98, 377, 
-       363, 79, 194, 195, 363, 363, 363, 368, 
-       363, 376, 363, 369, 370, 375, 375, 84, 
-       79, 194, 195, 363, 363, 363, 373, 363, 
-       363, 200, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 202, 
-       363, 369, 370, 371, 375, 84, 79, 194, 
-       195, 363, 363, 115, 373, 363, 363, 200, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 202, 363, 366, 
-       363, 432, 363, 413, 413, 84, 79, 194, 
-       195, 363, 363, 363, 368, 363, 366, 363, 
-       366, 363, 363, 363, 404, 404, 363, 79, 
-       194, 195, 363, 363, 363, 368, 363, 366, 
-       363, 366, 363, 363, 363, 404, 433, 363, 
-       79, 194, 195, 363, 363, 363, 368, 363, 
-       366, 363, 366, 363, 432, 363, 404, 404, 
-       363, 79, 194, 195, 363, 363, 363, 368, 
-       363, 366, 363, 366, 81, 363, 363, 98, 
-       367, 363, 79, 194, 195, 363, 363, 363, 
-       368, 363, 366, 363, 116, 83, 83, 84, 
-       79, 434, 434, 434, 434, 156, 116, 434, 
-       190, 191, 365, 365, 84, 79, 194, 195, 
-       363, 363, 363, 197, 363, 363, 200, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 363, 363, 363, 202, 363, 116, 83, 
-       83, 84, 79, 434, 434, 434, 434, 434, 
-       116, 434, 436, 437, 438, 439, 123, 118, 
-       440, 441, 435, 435, 155, 442, 435, 435, 
-       443, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 444, 435, 
-       445, 437, 439, 439, 123, 118, 440, 441, 
-       435, 435, 435, 442, 435, 435, 443, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 444, 435, 437, 439, 
-       439, 123, 118, 440, 441, 435, 435, 435, 
-       442, 435, 435, 443, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 444, 435, 446, 435, 435, 435, 136, 
-       447, 435, 118, 440, 441, 435, 435, 435, 
-       448, 435, 446, 435, 449, 450, 451, 452, 
-       123, 118, 440, 441, 435, 435, 153, 453, 
-       435, 435, 443, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       444, 435, 454, 450, 455, 455, 123, 118, 
-       440, 441, 435, 435, 435, 453, 435, 435, 
-       443, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 444, 435, 
-       450, 455, 455, 123, 118, 440, 441, 435, 
-       435, 435, 453, 435, 435, 443, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 444, 435, 456, 435, 435, 
-       435, 136, 457, 435, 118, 440, 441, 435, 
-       435, 435, 448, 435, 456, 435, 458, 459, 
-       460, 461, 123, 118, 440, 441, 435, 435, 
-       151, 462, 435, 435, 443, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 444, 435, 463, 459, 464, 464, 
-       123, 118, 440, 441, 435, 435, 435, 462, 
-       435, 435, 443, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       444, 435, 459, 464, 464, 123, 118, 440, 
-       441, 435, 435, 435, 462, 435, 435, 443, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 444, 435, 465, 
-       435, 435, 435, 136, 466, 435, 118, 440, 
-       441, 435, 435, 435, 448, 435, 465, 435, 
-       467, 468, 469, 470, 123, 118, 440, 441, 
-       435, 435, 149, 471, 435, 435, 443, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 444, 435, 472, 468, 
-       473, 473, 123, 118, 440, 441, 435, 435, 
-       435, 471, 435, 435, 443, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 444, 435, 468, 473, 473, 123, 
-       118, 440, 441, 435, 435, 435, 471, 435, 
-       435, 443, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 444, 
-       435, 474, 435, 435, 435, 136, 475, 435, 
-       118, 440, 441, 435, 435, 435, 448, 435, 
-       474, 435, 476, 477, 478, 479, 123, 118, 
-       440, 441, 435, 435, 147, 480, 435, 435, 
-       443, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 444, 435, 
-       481, 477, 482, 482, 123, 118, 440, 441, 
-       435, 435, 435, 480, 435, 435, 443, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 444, 435, 477, 482, 
-       482, 123, 118, 440, 441, 435, 435, 435, 
-       480, 435, 435, 443, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 444, 435, 136, 483, 435, 118, 440, 
-       441, 435, 435, 435, 448, 435, 484, 484, 
-       435, 118, 440, 441, 435, 435, 435, 448, 
-       435, 485, 435, 435, 486, 440, 441, 435, 
-       440, 441, 435, 487, 435, 440, 488, 435, 
-       440, 489, 435, 440, 435, 485, 435, 435, 
-       435, 440, 441, 435, 490, 435, 491, 492, 
-       435, 118, 440, 441, 435, 435, 121, 435, 
-       120, 435, 484, 484, 435, 118, 440, 441, 
-       435, 484, 484, 435, 118, 440, 441, 435, 
-       490, 435, 484, 484, 435, 118, 440, 441, 
-       435, 490, 435, 491, 484, 435, 118, 440, 
-       441, 435, 435, 121, 435, 136, 435, 493, 
-       493, 123, 118, 440, 441, 435, 435, 435, 
-       448, 435, 494, 145, 495, 496, 126, 118, 
-       440, 441, 435, 435, 435, 448, 435, 145, 
-       495, 496, 126, 118, 440, 441, 435, 435, 
-       435, 448, 435, 495, 495, 126, 118, 440, 
-       441, 435, 435, 435, 448, 435, 497, 142, 
-       498, 499, 129, 118, 440, 441, 435, 435, 
-       435, 448, 435, 142, 498, 499, 129, 118, 
-       440, 441, 435, 435, 435, 448, 435, 498, 
-       498, 129, 118, 440, 441, 435, 435, 435, 
-       448, 435, 500, 139, 501, 502, 132, 118, 
-       440, 441, 435, 435, 435, 448, 435, 139, 
-       501, 502, 132, 118, 440, 441, 435, 435, 
-       435, 448, 435, 501, 501, 132, 118, 440, 
-       441, 435, 435, 435, 448, 435, 503, 136, 
-       484, 504, 435, 118, 440, 441, 435, 435, 
-       435, 448, 435, 136, 484, 504, 435, 118, 
-       440, 441, 435, 435, 435, 448, 435, 484, 
-       505, 435, 118, 440, 441, 435, 435, 435, 
-       448, 435, 136, 435, 484, 484, 435, 118, 
-       440, 441, 435, 435, 435, 448, 435, 119, 
-       120, 435, 435, 136, 483, 435, 118, 440, 
-       441, 435, 435, 435, 448, 435, 119, 435, 
-       477, 482, 482, 123, 118, 440, 441, 435, 
-       435, 435, 480, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 444, 435, 477, 482, 482, 
-       123, 118, 440, 441, 435, 435, 435, 480, 
-       435, 476, 477, 482, 482, 123, 118, 440, 
-       441, 435, 435, 435, 480, 435, 435, 443, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 444, 435, 476, 
-       477, 478, 482, 123, 118, 440, 441, 435, 
-       435, 147, 480, 435, 435, 443, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 444, 435, 474, 435, 506, 
-       435, 493, 493, 123, 118, 440, 441, 435, 
-       435, 435, 448, 435, 474, 435, 474, 435, 
-       435, 435, 484, 484, 435, 118, 440, 441, 
-       435, 435, 435, 448, 435, 474, 435, 474, 
-       435, 435, 435, 484, 507, 435, 118, 440, 
-       441, 435, 435, 435, 448, 435, 474, 435, 
-       474, 435, 506, 435, 484, 484, 435, 118, 
-       440, 441, 435, 435, 435, 448, 435, 474, 
-       435, 474, 120, 435, 435, 136, 475, 435, 
-       118, 440, 441, 435, 435, 435, 448, 435, 
-       474, 435, 467, 468, 473, 473, 123, 118, 
-       440, 441, 435, 435, 435, 471, 435, 435, 
-       443, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 444, 435, 
-       467, 468, 469, 473, 123, 118, 440, 441, 
-       435, 435, 149, 471, 435, 435, 443, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 444, 435, 465, 435, 
-       508, 435, 493, 493, 123, 118, 440, 441, 
-       435, 435, 435, 448, 435, 465, 435, 465, 
-       435, 435, 435, 484, 484, 435, 118, 440, 
-       441, 435, 435, 435, 448, 435, 465, 435, 
-       465, 435, 435, 435, 484, 509, 435, 118, 
-       440, 441, 435, 435, 435, 448, 435, 465, 
-       435, 465, 435, 508, 435, 484, 484, 435, 
-       118, 440, 441, 435, 435, 435, 448, 435, 
-       465, 435, 465, 120, 435, 435, 136, 466, 
-       435, 118, 440, 441, 435, 435, 435, 448, 
-       435, 465, 435, 458, 459, 464, 464, 123, 
-       118, 440, 441, 435, 435, 435, 462, 435, 
-       435, 443, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 444, 
-       435, 458, 459, 460, 464, 123, 118, 440, 
-       441, 435, 435, 151, 462, 435, 435, 443, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 444, 435, 456, 
-       435, 510, 435, 493, 493, 123, 118, 440, 
-       441, 435, 435, 435, 448, 435, 456, 435, 
-       456, 435, 435, 435, 484, 484, 435, 118, 
-       440, 441, 435, 435, 435, 448, 435, 456, 
-       435, 456, 435, 435, 435, 484, 511, 435, 
-       118, 440, 441, 435, 435, 435, 448, 435, 
-       456, 435, 456, 435, 510, 435, 484, 484, 
-       435, 118, 440, 441, 435, 435, 435, 448, 
-       435, 456, 435, 456, 120, 435, 435, 136, 
-       457, 435, 118, 440, 441, 435, 435, 435, 
-       448, 435, 456, 435, 449, 450, 455, 455, 
-       123, 118, 440, 441, 435, 435, 435, 453, 
-       435, 435, 443, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       444, 435, 449, 450, 451, 455, 123, 118, 
-       440, 441, 435, 435, 153, 453, 435, 435, 
-       443, 435, 435, 435, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 444, 435, 
-       446, 435, 512, 435, 493, 493, 123, 118, 
-       440, 441, 435, 435, 435, 448, 435, 446, 
-       435, 446, 435, 435, 435, 484, 484, 435, 
-       118, 440, 441, 435, 435, 435, 448, 435, 
-       446, 435, 446, 435, 435, 435, 484, 513, 
-       435, 118, 440, 441, 435, 435, 435, 448, 
-       435, 446, 435, 446, 435, 512, 435, 484, 
-       484, 435, 118, 440, 441, 435, 435, 435, 
-       448, 435, 446, 435, 446, 120, 435, 435, 
-       136, 447, 435, 118, 440, 441, 435, 435, 
-       435, 448, 435, 446, 435, 436, 437, 439, 
-       439, 123, 118, 440, 441, 435, 435, 435, 
-       442, 435, 435, 443, 435, 435, 435, 435, 
-       435, 435, 435, 435, 435, 435, 435, 435, 
-       435, 444, 435, 188, 189, 190, 191, 514, 
-       365, 84, 79, 194, 195, 196, 196, 156, 
-       197, 363, 188, 200, 363, 363, 363, 363, 
-       363, 363, 363, 363, 363, 363, 363, 363, 
-       363, 202, 363, 204, 515, 206, 207, 6, 
-       1, 208, 209, 203, 203, 38, 210, 203, 
-       203, 211, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 212, 
-       203, 215, 189, 190, 191, 516, 517, 84, 
-       157, 518, 519, 203, 196, 156, 520, 203, 
-       215, 200, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 202, 
-       203, 116, 521, 521, 84, 157, 208, 209, 
-       203, 203, 156, 522, 203, 523, 203, 203, 
-       524, 518, 519, 203, 518, 519, 203, 256, 
-       203, 518, 525, 203, 518, 526, 203, 518, 
-       203, 523, 203, 203, 203, 518, 519, 203, 
-       527, 3, 363, 363, 404, 433, 363, 79, 
-       194, 195, 363, 363, 363, 368, 363, 527, 
-       363, 528, 370, 529, 530, 84, 157, 518, 
-       519, 203, 203, 158, 373, 203, 203, 200, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 202, 203, 531, 
-       370, 532, 532, 84, 157, 518, 519, 203, 
-       203, 203, 373, 203, 203, 200, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 202, 203, 370, 532, 532, 
-       84, 157, 518, 519, 203, 203, 203, 373, 
-       203, 203, 200, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       202, 203, 528, 370, 532, 532, 84, 157, 
-       518, 519, 203, 203, 203, 373, 203, 203, 
-       200, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 203, 203, 202, 203, 
-       528, 370, 529, 532, 84, 157, 518, 519, 
-       203, 203, 158, 373, 203, 203, 200, 203, 
-       203, 203, 203, 203, 203, 203, 203, 203, 
-       203, 203, 203, 203, 202, 203, 215, 203, 
-       281, 116, 533, 533, 160, 157, 208, 209, 
-       203, 203, 203, 522, 203, 215, 203, 534, 
-       184, 535, 536, 162, 157, 518, 519, 203, 
-       203, 203, 537, 203, 184, 535, 536, 162, 
-       157, 518, 519, 203, 203, 203, 537, 203, 
-       535, 535, 162, 157, 518, 519, 203, 203, 
-       203, 537, 203, 538, 181, 539, 540, 165, 
-       157, 518, 519, 203, 203, 203, 537, 203, 
-       181, 539, 540, 165, 157, 518, 519, 203, 
-       203, 203, 537, 203, 539, 539, 165, 157, 
-       518, 519, 203, 203, 203, 537, 203, 541, 
-       178, 542, 543, 168, 157, 518, 519, 203, 
-       203, 203, 537, 203, 178, 542, 543, 168, 
-       157, 518, 519, 203, 203, 203, 537, 203, 
-       542, 542, 168, 157, 518, 519, 203, 203, 
-       203, 537, 203, 544, 175, 545, 546, 203, 
-       157, 518, 519, 203, 203, 203, 537, 203, 
-       175, 545, 546, 203, 157, 518, 519, 203, 
-       203, 203, 537, 203, 545, 545, 203, 157, 
-       518, 519, 203, 203, 203, 537, 203, 547, 
-       203, 548, 549, 203, 157, 518, 519, 203, 
-       203, 172, 203, 171, 203, 545, 545, 203, 
-       157, 518, 519, 203, 545, 545, 203, 157, 
-       518, 519, 203, 547, 203, 545, 545, 203, 
-       157, 518, 519, 203, 547, 203, 548, 545, 
-       203, 157, 518, 519, 203, 203, 172, 203, 
-       527, 171, 363, 363, 98, 367, 363, 79, 
-       194, 195, 363, 363, 363, 368, 363, 527, 
-       363, 551, 550, 552, 552, 550, 186, 553, 
-       554, 550, 552, 552, 550, 186, 553, 554, 
-       550, 555, 550, 550, 556, 553, 554, 550, 
-       553, 554, 550, 557, 550, 553, 558, 550, 
-       553, 559, 550, 553, 550, 555, 550, 550, 
-       550, 553, 554, 550, 0
+       197, 198, 199, 200, 201, 187, 203, 204, 
+       205, 206, 6, 1, 207, 208, 202, 202, 
+       38, 209, 202, 202, 210, 202, 211, 204, 
+       212, 212, 6, 1, 207, 208, 202, 202, 
+       202, 209, 202, 202, 210, 202, 204, 212, 
+       212, 6, 1, 207, 208, 202, 202, 202, 
+       209, 202, 202, 210, 202, 213, 202, 202, 
+       202, 19, 214, 202, 1, 207, 208, 202, 
+       202, 202, 215, 202, 213, 202, 216, 217, 
+       218, 219, 6, 1, 207, 208, 202, 202, 
+       36, 220, 202, 202, 210, 202, 221, 217, 
+       222, 222, 6, 1, 207, 208, 202, 202, 
+       202, 220, 202, 202, 210, 202, 217, 222, 
+       222, 6, 1, 207, 208, 202, 202, 202, 
+       220, 202, 202, 210, 202, 223, 202, 202, 
+       202, 19, 224, 202, 1, 207, 208, 202, 
+       202, 202, 215, 202, 223, 202, 225, 226, 
+       227, 228, 6, 1, 207, 208, 202, 202, 
+       34, 229, 202, 202, 210, 202, 230, 226, 
+       231, 231, 6, 1, 207, 208, 202, 202, 
+       202, 229, 202, 202, 210, 202, 226, 231, 
+       231, 6, 1, 207, 208, 202, 202, 202, 
+       229, 202, 202, 210, 202, 232, 202, 202, 
+       202, 19, 233, 202, 1, 207, 208, 202, 
+       202, 202, 215, 202, 232, 202, 234, 235, 
+       236, 237, 6, 1, 207, 208, 202, 202, 
+       32, 238, 202, 202, 210, 202, 239, 235, 
+       240, 240, 6, 1, 207, 208, 202, 202, 
+       202, 238, 202, 202, 210, 202, 235, 240, 
+       240, 6, 1, 207, 208, 202, 202, 202, 
+       238, 202, 202, 210, 202, 241, 202, 202, 
+       202, 19, 242, 202, 1, 207, 208, 202, 
+       202, 202, 215, 202, 241, 202, 243, 244, 
+       245, 246, 6, 1, 207, 208, 202, 202, 
+       30, 247, 202, 202, 210, 202, 248, 244, 
+       249, 249, 6, 1, 207, 208, 202, 202, 
+       202, 247, 202, 202, 210, 202, 244, 249, 
+       249, 6, 1, 207, 208, 202, 202, 202, 
+       247, 202, 202, 210, 202, 19, 250, 202, 
+       1, 207, 208, 202, 202, 202, 215, 202, 
+       251, 251, 202, 1, 207, 208, 202, 202, 
+       202, 215, 202, 252, 202, 202, 253, 207, 
+       208, 202, 207, 208, 202, 254, 202, 207, 
+       255, 202, 207, 256, 202, 207, 202, 252, 
+       202, 202, 202, 207, 208, 202, 257, 202, 
+       258, 259, 202, 1, 207, 208, 202, 202, 
+       4, 202, 3, 202, 251, 251, 202, 1, 
+       207, 208, 202, 251, 251, 202, 1, 207, 
+       208, 202, 257, 202, 251, 251, 202, 1, 
+       207, 208, 202, 257, 202, 258, 251, 202, 
+       1, 207, 208, 202, 202, 4, 202, 19, 
+       202, 260, 260, 6, 1, 207, 208, 202, 
+       202, 202, 215, 202, 261, 28, 262, 263, 
+       9, 1, 207, 208, 202, 202, 202, 215, 
+       202, 28, 262, 263, 9, 1, 207, 208, 
+       202, 202, 202, 215, 202, 262, 262, 9, 
+       1, 207, 208, 202, 202, 202, 215, 202, 
+       264, 25, 265, 266, 12, 1, 207, 208, 
+       202, 202, 202, 215, 202, 25, 265, 266, 
+       12, 1, 207, 208, 202, 202, 202, 215, 
+       202, 265, 265, 12, 1, 207, 208, 202, 
+       202, 202, 215, 202, 267, 22, 268, 269, 
+       15, 1, 207, 208, 202, 202, 202, 215, 
+       202, 22, 268, 269, 15, 1, 207, 208, 
+       202, 202, 202, 215, 202, 268, 268, 15, 
+       1, 207, 208, 202, 202, 202, 215, 202, 
+       270, 19, 251, 271, 202, 1, 207, 208, 
+       202, 202, 202, 215, 202, 19, 251, 271, 
+       202, 1, 207, 208, 202, 202, 202, 215, 
+       202, 251, 272, 202, 1, 207, 208, 202, 
+       202, 202, 215, 202, 19, 202, 251, 251, 
+       202, 1, 207, 208, 202, 202, 202, 215, 
+       202, 2, 3, 202, 202, 19, 250, 202, 
+       1, 207, 208, 202, 202, 202, 215, 202, 
+       2, 202, 244, 249, 249, 6, 1, 207, 
+       208, 202, 202, 202, 247, 202, 243, 244, 
+       249, 249, 6, 1, 207, 208, 202, 202, 
+       202, 247, 202, 202, 210, 202, 243, 244, 
+       245, 249, 6, 1, 207, 208, 202, 202, 
+       30, 247, 202, 202, 210, 202, 241, 202, 
+       273, 202, 260, 260, 6, 1, 207, 208, 
+       202, 202, 202, 215, 202, 241, 202, 241, 
+       202, 202, 202, 251, 251, 202, 1, 207, 
+       208, 202, 202, 202, 215, 202, 241, 202, 
+       241, 202, 202, 202, 251, 274, 202, 1, 
+       207, 208, 202, 202, 202, 215, 202, 241, 
+       202, 241, 202, 273, 202, 251, 251, 202, 
+       1, 207, 208, 202, 202, 202, 215, 202, 
+       241, 202, 241, 3, 202, 202, 19, 242, 
+       202, 1, 207, 208, 202, 202, 202, 215, 
+       202, 241, 202, 234, 235, 240, 240, 6, 
+       1, 207, 208, 202, 202, 202, 238, 202, 
+       202, 210, 202, 234, 235, 236, 240, 6, 
+       1, 207, 208, 202, 202, 32, 238, 202, 
+       202, 210, 202, 232, 202, 275, 202, 260, 
+       260, 6, 1, 207, 208, 202, 202, 202, 
+       215, 202, 232, 202, 232, 202, 202, 202, 
+       251, 251, 202, 1, 207, 208, 202, 202, 
+       202, 215, 202, 232, 202, 232, 202, 202, 
+       202, 251, 276, 202, 1, 207, 208, 202, 
+       202, 202, 215, 202, 232, 202, 232, 202, 
+       275, 202, 251, 251, 202, 1, 207, 208, 
+       202, 202, 202, 215, 202, 232, 202, 232, 
+       3, 202, 202, 19, 233, 202, 1, 207, 
+       208, 202, 202, 202, 215, 202, 232, 202, 
+       225, 226, 231, 231, 6, 1, 207, 208, 
+       202, 202, 202, 229, 202, 202, 210, 202, 
+       225, 226, 227, 231, 6, 1, 207, 208, 
+       202, 202, 34, 229, 202, 202, 210, 202, 
+       223, 202, 277, 202, 260, 260, 6, 1, 
+       207, 208, 202, 202, 202, 215, 202, 223, 
+       202, 223, 202, 202, 202, 251, 251, 202, 
+       1, 207, 208, 202, 202, 202, 215, 202, 
+       223, 202, 223, 202, 202, 202, 251, 278, 
+       202, 1, 207, 208, 202, 202, 202, 215, 
+       202, 223, 202, 223, 202, 277, 202, 251, 
+       251, 202, 1, 207, 208, 202, 202, 202, 
+       215, 202, 223, 202, 223, 3, 202, 202, 
+       19, 224, 202, 1, 207, 208, 202, 202, 
+       202, 215, 202, 223, 202, 216, 217, 222, 
+       222, 6, 1, 207, 208, 202, 202, 202, 
+       220, 202, 202, 210, 202, 216, 217, 218, 
+       222, 6, 1, 207, 208, 202, 202, 36, 
+       220, 202, 202, 210, 202, 213, 202, 279, 
+       202, 260, 260, 6, 1, 207, 208, 202, 
+       202, 202, 215, 202, 213, 202, 213, 202, 
+       202, 202, 251, 251, 202, 1, 207, 208, 
+       202, 202, 202, 215, 202, 213, 202, 213, 
+       202, 202, 202, 251, 280, 202, 1, 207, 
+       208, 202, 202, 202, 215, 202, 213, 202, 
+       213, 202, 279, 202, 251, 251, 202, 1, 
+       207, 208, 202, 202, 202, 215, 202, 213, 
+       202, 213, 3, 202, 202, 19, 214, 202, 
+       1, 207, 208, 202, 202, 202, 215, 202, 
+       213, 202, 203, 204, 212, 212, 6, 1, 
+       207, 208, 202, 202, 202, 209, 202, 202, 
+       210, 202, 203, 204, 205, 212, 6, 1, 
+       207, 208, 202, 202, 38, 209, 202, 202, 
+       210, 202, 282, 283, 284, 285, 45, 40, 
+       286, 287, 281, 281, 77, 288, 281, 281, 
+       289, 281, 290, 283, 291, 285, 45, 40, 
+       286, 287, 281, 281, 281, 288, 281, 281, 
+       289, 281, 283, 291, 285, 45, 40, 286, 
+       287, 281, 281, 281, 288, 281, 281, 289, 
+       281, 292, 281, 281, 281, 58, 293, 281, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       292, 281, 295, 296, 297, 298, 45, 40, 
+       286, 287, 281, 281, 75, 299, 281, 281, 
+       289, 281, 300, 296, 301, 301, 45, 40, 
+       286, 287, 281, 281, 281, 299, 281, 281, 
+       289, 281, 296, 301, 301, 45, 40, 286, 
+       287, 281, 281, 281, 299, 281, 281, 289, 
+       281, 302, 281, 281, 281, 58, 303, 281, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       302, 281, 304, 305, 306, 307, 45, 40, 
+       286, 287, 281, 281, 73, 308, 281, 281, 
+       289, 281, 309, 305, 310, 310, 45, 40, 
+       286, 287, 281, 281, 281, 308, 281, 281, 
+       289, 281, 305, 310, 310, 45, 40, 286, 
+       287, 281, 281, 281, 308, 281, 281, 289, 
+       281, 311, 281, 281, 281, 58, 312, 281, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       311, 281, 313, 314, 315, 316, 45, 40, 
+       286, 287, 281, 281, 71, 317, 281, 281, 
+       289, 281, 318, 314, 319, 319, 45, 40, 
+       286, 287, 281, 281, 281, 317, 281, 281, 
+       289, 281, 314, 319, 319, 45, 40, 286, 
+       287, 281, 281, 281, 317, 281, 281, 289, 
+       281, 320, 281, 281, 281, 58, 321, 281, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       320, 281, 322, 323, 324, 325, 45, 40, 
+       286, 287, 281, 281, 69, 326, 281, 281, 
+       289, 281, 327, 323, 328, 328, 45, 40, 
+       286, 287, 281, 281, 281, 326, 281, 281, 
+       289, 281, 323, 328, 328, 45, 40, 286, 
+       287, 281, 281, 281, 326, 281, 281, 289, 
+       281, 58, 329, 281, 40, 286, 287, 281, 
+       281, 281, 294, 281, 330, 330, 281, 40, 
+       286, 287, 281, 281, 281, 294, 281, 331, 
+       281, 281, 332, 286, 287, 281, 286, 287, 
+       281, 333, 281, 286, 334, 281, 286, 335, 
+       281, 286, 281, 331, 281, 281, 281, 286, 
+       287, 281, 336, 281, 337, 338, 281, 40, 
+       286, 287, 281, 281, 43, 281, 42, 281, 
+       330, 330, 281, 40, 286, 287, 281, 330, 
+       330, 281, 40, 286, 287, 281, 336, 281, 
+       330, 330, 281, 40, 286, 287, 281, 336, 
+       281, 337, 330, 281, 40, 286, 287, 281, 
+       281, 43, 281, 58, 281, 339, 339, 45, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       340, 67, 341, 342, 48, 40, 286, 287, 
+       281, 281, 281, 294, 281, 67, 341, 342, 
+       48, 40, 286, 287, 281, 281, 281, 294, 
+       281, 341, 341, 48, 40, 286, 287, 281, 
+       281, 281, 294, 281, 343, 64, 344, 345, 
+       51, 40, 286, 287, 281, 281, 281, 294, 
+       281, 64, 344, 345, 51, 40, 286, 287, 
+       281, 281, 281, 294, 281, 344, 344, 51, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       346, 61, 347, 348, 54, 40, 286, 287, 
+       281, 281, 281, 294, 281, 61, 347, 348, 
+       54, 40, 286, 287, 281, 281, 281, 294, 
+       281, 347, 347, 54, 40, 286, 287, 281, 
+       281, 281, 294, 281, 349, 58, 330, 350, 
+       281, 40, 286, 287, 281, 281, 281, 294, 
+       281, 58, 330, 350, 281, 40, 286, 287, 
+       281, 281, 281, 294, 281, 330, 351, 281, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       58, 281, 330, 330, 281, 40, 286, 287, 
+       281, 281, 281, 294, 281, 41, 42, 281, 
+       281, 58, 329, 281, 40, 286, 287, 281, 
+       281, 281, 294, 281, 41, 281, 323, 328, 
+       328, 45, 40, 286, 287, 281, 281, 281, 
+       326, 281, 322, 323, 328, 328, 45, 40, 
+       286, 287, 281, 281, 281, 326, 281, 281, 
+       289, 281, 322, 323, 324, 328, 45, 40, 
+       286, 287, 281, 281, 69, 326, 281, 281, 
+       289, 281, 320, 281, 352, 281, 339, 339, 
+       45, 40, 286, 287, 281, 281, 281, 294, 
+       281, 320, 281, 320, 281, 281, 281, 330, 
+       330, 281, 40, 286, 287, 281, 281, 281, 
+       294, 281, 320, 281, 320, 281, 281, 281, 
+       330, 353, 281, 40, 286, 287, 281, 281, 
+       281, 294, 281, 320, 281, 320, 281, 352, 
+       281, 330, 330, 281, 40, 286, 287, 281, 
+       281, 281, 294, 281, 320, 281, 320, 42, 
+       281, 281, 58, 321, 281, 40, 286, 287, 
+       281, 281, 281, 294, 281, 320, 281, 313, 
+       314, 319, 319, 45, 40, 286, 287, 281, 
+       281, 281, 317, 281, 281, 289, 281, 313, 
+       314, 315, 319, 45, 40, 286, 287, 281, 
+       281, 71, 317, 281, 281, 289, 281, 311, 
+       281, 354, 281, 339, 339, 45, 40, 286, 
+       287, 281, 281, 281, 294, 281, 311, 281, 
+       311, 281, 281, 281, 330, 330, 281, 40, 
+       286, 287, 281, 281, 281, 294, 281, 311, 
+       281, 311, 281, 281, 281, 330, 355, 281, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       311, 281, 311, 281, 354, 281, 330, 330, 
+       281, 40, 286, 287, 281, 281, 281, 294, 
+       281, 311, 281, 311, 42, 281, 281, 58, 
+       312, 281, 40, 286, 287, 281, 281, 281, 
+       294, 281, 311, 281, 304, 305, 310, 310, 
+       45, 40, 286, 287, 281, 281, 281, 308, 
+       281, 281, 289, 281, 304, 305, 306, 310, 
+       45, 40, 286, 287, 281, 281, 73, 308, 
+       281, 281, 289, 281, 302, 281, 356, 281, 
+       339, 339, 45, 40, 286, 287, 281, 281, 
+       281, 294, 281, 302, 281, 302, 281, 281, 
+       281, 330, 330, 281, 40, 286, 287, 281, 
+       281, 281, 294, 281, 302, 281, 302, 281, 
+       281, 281, 330, 357, 281, 40, 286, 287, 
+       281, 281, 281, 294, 281, 302, 281, 302, 
+       281, 356, 281, 330, 330, 281, 40, 286, 
+       287, 281, 281, 281, 294, 281, 302, 281, 
+       302, 42, 281, 281, 58, 303, 281, 40, 
+       286, 287, 281, 281, 281, 294, 281, 302, 
+       281, 295, 296, 301, 301, 45, 40, 286, 
+       287, 281, 281, 281, 299, 281, 281, 289, 
+       281, 295, 296, 297, 301, 45, 40, 286, 
+       287, 281, 281, 75, 299, 281, 281, 289, 
+       281, 292, 281, 358, 281, 339, 339, 45, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       292, 281, 292, 281, 281, 281, 330, 330, 
+       281, 40, 286, 287, 281, 281, 281, 294, 
+       281, 292, 281, 292, 281, 281, 281, 330, 
+       359, 281, 40, 286, 287, 281, 281, 281, 
+       294, 281, 292, 281, 292, 281, 358, 281, 
+       330, 330, 281, 40, 286, 287, 281, 281, 
+       281, 294, 281, 292, 281, 76, 44, 44, 
+       45, 40, 281, 281, 281, 281, 281, 76, 
+       281, 292, 42, 281, 281, 58, 293, 281, 
+       40, 286, 287, 281, 281, 281, 294, 281, 
+       292, 281, 282, 283, 291, 285, 45, 40, 
+       286, 287, 281, 281, 281, 288, 281, 281, 
+       289, 281, 361, 191, 362, 362, 84, 79, 
+       194, 195, 360, 360, 360, 197, 360, 360, 
+       200, 360, 191, 362, 362, 84, 79, 194, 
+       195, 360, 360, 360, 197, 360, 360, 200, 
+       360, 363, 360, 360, 360, 98, 364, 360, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       363, 360, 366, 367, 368, 369, 84, 79, 
+       194, 195, 360, 360, 115, 370, 360, 360, 
+       200, 360, 371, 367, 372, 372, 84, 79, 
+       194, 195, 360, 360, 360, 370, 360, 360, 
+       200, 360, 367, 372, 372, 84, 79, 194, 
+       195, 360, 360, 360, 370, 360, 360, 200, 
+       360, 373, 360, 360, 360, 98, 374, 360, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       373, 360, 375, 376, 377, 378, 84, 79, 
+       194, 195, 360, 360, 113, 379, 360, 360, 
+       200, 360, 380, 376, 381, 381, 84, 79, 
+       194, 195, 360, 360, 360, 379, 360, 360, 
+       200, 360, 376, 381, 381, 84, 79, 194, 
+       195, 360, 360, 360, 379, 360, 360, 200, 
+       360, 382, 360, 360, 360, 98, 383, 360, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       382, 360, 384, 385, 386, 387, 84, 79, 
+       194, 195, 360, 360, 111, 388, 360, 360, 
+       200, 360, 389, 385, 390, 390, 84, 79, 
+       194, 195, 360, 360, 360, 388, 360, 360, 
+       200, 360, 385, 390, 390, 84, 79, 194, 
+       195, 360, 360, 360, 388, 360, 360, 200, 
+       360, 391, 360, 360, 360, 98, 392, 360, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       391, 360, 393, 394, 395, 396, 84, 79, 
+       194, 195, 360, 360, 109, 397, 360, 360, 
+       200, 360, 398, 394, 399, 399, 84, 79, 
+       194, 195, 360, 360, 360, 397, 360, 360, 
+       200, 360, 394, 399, 399, 84, 79, 194, 
+       195, 360, 360, 360, 397, 360, 360, 200, 
+       360, 98, 400, 360, 79, 194, 195, 360, 
+       360, 360, 365, 360, 401, 401, 360, 79, 
+       194, 195, 360, 360, 360, 365, 360, 402, 
+       360, 360, 403, 194, 195, 360, 194, 195, 
+       360, 404, 360, 194, 405, 360, 194, 406, 
+       360, 194, 360, 402, 360, 360, 360, 194, 
+       195, 360, 407, 360, 408, 409, 360, 79, 
+       194, 195, 360, 360, 82, 360, 81, 360, 
+       401, 401, 360, 79, 194, 195, 360, 401, 
+       401, 360, 79, 194, 195, 360, 407, 360, 
+       401, 401, 360, 79, 194, 195, 360, 407, 
+       360, 408, 401, 360, 79, 194, 195, 360, 
+       360, 82, 360, 98, 360, 410, 410, 84, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       411, 107, 412, 413, 88, 79, 194, 195, 
+       360, 360, 360, 365, 360, 107, 412, 413, 
+       88, 79, 194, 195, 360, 360, 360, 365, 
+       360, 412, 412, 88, 79, 194, 195, 360, 
+       360, 360, 365, 360, 414, 104, 415, 416, 
+       91, 79, 194, 195, 360, 360, 360, 365, 
+       360, 104, 415, 416, 91, 79, 194, 195, 
+       360, 360, 360, 365, 360, 415, 415, 91, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       417, 101, 418, 419, 94, 79, 194, 195, 
+       360, 360, 360, 365, 360, 101, 418, 419, 
+       94, 79, 194, 195, 360, 360, 360, 365, 
+       360, 418, 418, 94, 79, 194, 195, 360, 
+       360, 360, 365, 360, 420, 98, 401, 421, 
+       360, 79, 194, 195, 360, 360, 360, 365, 
+       360, 98, 401, 421, 360, 79, 194, 195, 
+       360, 360, 360, 365, 360, 401, 422, 360, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       98, 360, 401, 401, 360, 79, 194, 195, 
+       360, 360, 360, 365, 360, 80, 81, 360, 
+       360, 98, 400, 360, 79, 194, 195, 360, 
+       360, 360, 365, 360, 80, 360, 394, 399, 
+       399, 84, 79, 194, 195, 360, 360, 360, 
+       397, 360, 393, 394, 399, 399, 84, 79, 
+       194, 195, 360, 360, 360, 397, 360, 360, 
+       200, 360, 393, 394, 395, 399, 84, 79, 
+       194, 195, 360, 360, 109, 397, 360, 360, 
+       200, 360, 391, 360, 423, 360, 410, 410, 
+       84, 79, 194, 195, 360, 360, 360, 365, 
+       360, 391, 360, 391, 360, 360, 360, 401, 
+       401, 360, 79, 194, 195, 360, 360, 360, 
+       365, 360, 391, 360, 391, 360, 360, 360, 
+       401, 424, 360, 79, 194, 195, 360, 360, 
+       360, 365, 360, 391, 360, 391, 360, 423, 
+       360, 401, 401, 360, 79, 194, 195, 360, 
+       360, 360, 365, 360, 391, 360, 391, 81, 
+       360, 360, 98, 392, 360, 79, 194, 195, 
+       360, 360, 360, 365, 360, 391, 360, 384, 
+       385, 390, 390, 84, 79, 194, 195, 360, 
+       360, 360, 388, 360, 360, 200, 360, 384, 
+       385, 386, 390, 84, 79, 194, 195, 360, 
+       360, 111, 388, 360, 360, 200, 360, 382, 
+       360, 425, 360, 410, 410, 84, 79, 194, 
+       195, 360, 360, 360, 365, 360, 382, 360, 
+       382, 360, 360, 360, 401, 401, 360, 79, 
+       194, 195, 360, 360, 360, 365, 360, 382, 
+       360, 382, 360, 360, 360, 401, 426, 360, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       382, 360, 382, 360, 425, 360, 401, 401, 
+       360, 79, 194, 195, 360, 360, 360, 365, 
+       360, 382, 360, 382, 81, 360, 360, 98, 
+       383, 360, 79, 194, 195, 360, 360, 360, 
+       365, 360, 382, 360, 375, 376, 381, 381, 
+       84, 79, 194, 195, 360, 360, 360, 379, 
+       360, 360, 200, 360, 375, 376, 377, 381, 
+       84, 79, 194, 195, 360, 360, 113, 379, 
+       360, 360, 200, 360, 373, 360, 427, 360, 
+       410, 410, 84, 79, 194, 195, 360, 360, 
+       360, 365, 360, 373, 360, 373, 360, 360, 
+       360, 401, 401, 360, 79, 194, 195, 360, 
+       360, 360, 365, 360, 373, 360, 373, 360, 
+       360, 360, 401, 428, 360, 79, 194, 195, 
+       360, 360, 360, 365, 360, 373, 360, 373, 
+       360, 427, 360, 401, 401, 360, 79, 194, 
+       195, 360, 360, 360, 365, 360, 373, 360, 
+       373, 81, 360, 360, 98, 374, 360, 79, 
+       194, 195, 360, 360, 360, 365, 360, 373, 
+       360, 366, 367, 372, 372, 84, 79, 194, 
+       195, 360, 360, 360, 370, 360, 360, 200, 
+       360, 366, 367, 368, 372, 84, 79, 194, 
+       195, 360, 360, 115, 370, 360, 360, 200, 
+       360, 363, 360, 429, 360, 410, 410, 84, 
+       79, 194, 195, 360, 360, 360, 365, 360, 
+       363, 360, 363, 360, 360, 360, 401, 401, 
+       360, 79, 194, 195, 360, 360, 360, 365, 
+       360, 363, 360, 363, 360, 360, 360, 401, 
+       430, 360, 79, 194, 195, 360, 360, 360, 
+       365, 360, 363, 360, 363, 360, 429, 360, 
+       401, 401, 360, 79, 194, 195, 360, 360, 
+       360, 365, 360, 363, 360, 363, 81, 360, 
+       360, 98, 364, 360, 79, 194, 195, 360, 
+       360, 360, 365, 360, 363, 360, 116, 83, 
+       83, 84, 79, 431, 431, 431, 431, 156, 
+       116, 431, 190, 191, 362, 362, 84, 79, 
+       194, 195, 360, 360, 360, 197, 360, 360, 
+       200, 360, 116, 83, 83, 84, 79, 431, 
+       431, 431, 431, 431, 116, 431, 433, 434, 
+       435, 436, 123, 118, 437, 438, 432, 432, 
+       155, 439, 432, 432, 440, 432, 441, 434, 
+       436, 436, 123, 118, 437, 438, 432, 432, 
+       432, 439, 432, 432, 440, 432, 434, 436, 
+       436, 123, 118, 437, 438, 432, 432, 432, 
+       439, 432, 432, 440, 432, 442, 432, 432, 
+       432, 136, 443, 432, 118, 437, 438, 432, 
+       432, 432, 444, 432, 442, 432, 445, 446, 
+       447, 448, 123, 118, 437, 438, 432, 432, 
+       153, 449, 432, 432, 440, 432, 450, 446, 
+       451, 451, 123, 118, 437, 438, 432, 432, 
+       432, 449, 432, 432, 440, 432, 446, 451, 
+       451, 123, 118, 437, 438, 432, 432, 432, 
+       449, 432, 432, 440, 432, 452, 432, 432, 
+       432, 136, 453, 432, 118, 437, 438, 432, 
+       432, 432, 444, 432, 452, 432, 454, 455, 
+       456, 457, 123, 118, 437, 438, 432, 432, 
+       151, 458, 432, 432, 440, 432, 459, 455, 
+       460, 460, 123, 118, 437, 438, 432, 432, 
+       432, 458, 432, 432, 440, 432, 455, 460, 
+       460, 123, 118, 437, 438, 432, 432, 432, 
+       458, 432, 432, 440, 432, 461, 432, 432, 
+       432, 136, 462, 432, 118, 437, 438, 432, 
+       432, 432, 444, 432, 461, 432, 463, 464, 
+       465, 466, 123, 118, 437, 438, 432, 432, 
+       149, 467, 432, 432, 440, 432, 468, 464, 
+       469, 469, 123, 118, 437, 438, 432, 432, 
+       432, 467, 432, 432, 440, 432, 464, 469, 
+       469, 123, 118, 437, 438, 432, 432, 432, 
+       467, 432, 432, 440, 432, 470, 432, 432, 
+       432, 136, 471, 432, 118, 437, 438, 432, 
+       432, 432, 444, 432, 470, 432, 472, 473, 
+       474, 475, 123, 118, 437, 438, 432, 432, 
+       147, 476, 432, 432, 440, 432, 477, 473, 
+       478, 478, 123, 118, 437, 438, 432, 432, 
+       432, 476, 432, 432, 440, 432, 473, 478, 
+       478, 123, 118, 437, 438, 432, 432, 432, 
+       476, 432, 432, 440, 432, 136, 479, 432, 
+       118, 437, 438, 432, 432, 432, 444, 432, 
+       480, 480, 432, 118, 437, 438, 432, 432, 
+       432, 444, 432, 481, 432, 432, 482, 437, 
+       438, 432, 437, 438, 432, 483, 432, 437, 
+       484, 432, 437, 485, 432, 437, 432, 481, 
+       432, 432, 432, 437, 438, 432, 486, 432, 
+       487, 488, 432, 118, 437, 438, 432, 432, 
+       121, 432, 120, 432, 480, 480, 432, 118, 
+       437, 438, 432, 480, 480, 432, 118, 437, 
+       438, 432, 486, 432, 480, 480, 432, 118, 
+       437, 438, 432, 486, 432, 487, 480, 432, 
+       118, 437, 438, 432, 432, 121, 432, 136, 
+       432, 489, 489, 123, 118, 437, 438, 432, 
+       432, 432, 444, 432, 490, 145, 491, 492, 
+       126, 118, 437, 438, 432, 432, 432, 444, 
+       432, 145, 491, 492, 126, 118, 437, 438, 
+       432, 432, 432, 444, 432, 491, 491, 126, 
+       118, 437, 438, 432, 432, 432, 444, 432, 
+       493, 142, 494, 495, 129, 118, 437, 438, 
+       432, 432, 432, 444, 432, 142, 494, 495, 
+       129, 118, 437, 438, 432, 432, 432, 444, 
+       432, 494, 494, 129, 118, 437, 438, 432, 
+       432, 432, 444, 432, 496, 139, 497, 498, 
+       132, 118, 437, 438, 432, 432, 432, 444, 
+       432, 139, 497, 498, 132, 118, 437, 438, 
+       432, 432, 432, 444, 432, 497, 497, 132, 
+       118, 437, 438, 432, 432, 432, 444, 432, 
+       499, 136, 480, 500, 432, 118, 437, 438, 
+       432, 432, 432, 444, 432, 136, 480, 500, 
+       432, 118, 437, 438, 432, 432, 432, 444, 
+       432, 480, 501, 432, 118, 437, 438, 432, 
+       432, 432, 444, 432, 136, 432, 480, 480, 
+       432, 118, 437, 438, 432, 432, 432, 444, 
+       432, 119, 120, 432, 432, 136, 479, 432, 
+       118, 437, 438, 432, 432, 432, 444, 432, 
+       119, 432, 473, 478, 478, 123, 118, 437, 
+       438, 432, 432, 432, 476, 432, 472, 473, 
+       478, 478, 123, 118, 437, 438, 432, 432, 
+       432, 476, 432, 432, 440, 432, 472, 473, 
+       474, 478, 123, 118, 437, 438, 432, 432, 
+       147, 476, 432, 432, 440, 432, 470, 432, 
+       502, 432, 489, 489, 123, 118, 437, 438, 
+       432, 432, 432, 444, 432, 470, 432, 470, 
+       432, 432, 432, 480, 480, 432, 118, 437, 
+       438, 432, 432, 432, 444, 432, 470, 432, 
+       470, 432, 432, 432, 480, 503, 432, 118, 
+       437, 438, 432, 432, 432, 444, 432, 470, 
+       432, 470, 432, 502, 432, 480, 480, 432, 
+       118, 437, 438, 432, 432, 432, 444, 432, 
+       470, 432, 470, 120, 432, 432, 136, 471, 
+       432, 118, 437, 438, 432, 432, 432, 444, 
+       432, 470, 432, 463, 464, 469, 469, 123, 
+       118, 437, 438, 432, 432, 432, 467, 432, 
+       432, 440, 432, 463, 464, 465, 469, 123, 
+       118, 437, 438, 432, 432, 149, 467, 432, 
+       432, 440, 432, 461, 432, 504, 432, 489, 
+       489, 123, 118, 437, 438, 432, 432, 432, 
+       444, 432, 461, 432, 461, 432, 432, 432, 
+       480, 480, 432, 118, 437, 438, 432, 432, 
+       432, 444, 432, 461, 432, 461, 432, 432, 
+       432, 480, 505, 432, 118, 437, 438, 432, 
+       432, 432, 444, 432, 461, 432, 461, 432, 
+       504, 432, 480, 480, 432, 118, 437, 438, 
+       432, 432, 432, 444, 432, 461, 432, 461, 
+       120, 432, 432, 136, 462, 432, 118, 437, 
+       438, 432, 432, 432, 444, 432, 461, 432, 
+       454, 455, 460, 460, 123, 118, 437, 438, 
+       432, 432, 432, 458, 432, 432, 440, 432, 
+       454, 455, 456, 460, 123, 118, 437, 438, 
+       432, 432, 151, 458, 432, 432, 440, 432, 
+       452, 432, 506, 432, 489, 489, 123, 118, 
+       437, 438, 432, 432, 432, 444, 432, 452, 
+       432, 452, 432, 432, 432, 480, 480, 432, 
+       118, 437, 438, 432, 432, 432, 444, 432, 
+       452, 432, 452, 432, 432, 432, 480, 507, 
+       432, 118, 437, 438, 432, 432, 432, 444, 
+       432, 452, 432, 452, 432, 506, 432, 480, 
+       480, 432, 118, 437, 438, 432, 432, 432, 
+       444, 432, 452, 432, 452, 120, 432, 432, 
+       136, 453, 432, 118, 437, 438, 432, 432, 
+       432, 444, 432, 452, 432, 445, 446, 451, 
+       451, 123, 118, 437, 438, 432, 432, 432, 
+       449, 432, 432, 440, 432, 445, 446, 447, 
+       451, 123, 118, 437, 438, 432, 432, 153, 
+       449, 432, 432, 440, 432, 442, 432, 508, 
+       432, 489, 489, 123, 118, 437, 438, 432, 
+       432, 432, 444, 432, 442, 432, 442, 432, 
+       432, 432, 480, 480, 432, 118, 437, 438, 
+       432, 432, 432, 444, 432, 442, 432, 442, 
+       432, 432, 432, 480, 509, 432, 118, 437, 
+       438, 432, 432, 432, 444, 432, 442, 432, 
+       442, 432, 508, 432, 480, 480, 432, 118, 
+       437, 438, 432, 432, 432, 444, 432, 442, 
+       432, 442, 120, 432, 432, 136, 443, 432, 
+       118, 437, 438, 432, 432, 432, 444, 432, 
+       442, 432, 433, 434, 436, 436, 123, 118, 
+       437, 438, 432, 432, 432, 439, 432, 432, 
+       440, 432, 188, 189, 190, 191, 510, 362, 
+       84, 79, 194, 195, 196, 196, 156, 197, 
+       360, 188, 200, 360, 203, 511, 205, 206, 
+       6, 1, 207, 208, 202, 202, 38, 209, 
+       202, 202, 210, 202, 213, 189, 190, 191, 
+       512, 513, 84, 157, 514, 515, 202, 196, 
+       156, 516, 202, 213, 200, 202, 116, 517, 
+       517, 84, 157, 207, 208, 202, 202, 156, 
+       518, 202, 519, 202, 202, 520, 514, 515, 
+       202, 514, 515, 202, 254, 202, 514, 521, 
+       202, 514, 522, 202, 514, 202, 519, 202, 
+       202, 202, 514, 515, 202, 523, 3, 360, 
+       360, 401, 430, 360, 79, 194, 195, 360, 
+       360, 360, 365, 360, 523, 360, 524, 367, 
+       525, 526, 84, 157, 514, 515, 202, 202, 
+       158, 370, 202, 202, 200, 202, 527, 367, 
+       528, 528, 84, 157, 514, 515, 202, 202, 
+       202, 370, 202, 202, 200, 202, 367, 528, 
+       528, 84, 157, 514, 515, 202, 202, 202, 
+       370, 202, 202, 200, 202, 524, 367, 528, 
+       528, 84, 157, 514, 515, 202, 202, 202, 
+       370, 202, 202, 200, 202, 524, 367, 525, 
+       528, 84, 157, 514, 515, 202, 202, 158, 
+       370, 202, 202, 200, 202, 213, 202, 279, 
+       116, 529, 529, 160, 157, 207, 208, 202, 
+       202, 202, 518, 202, 213, 202, 530, 184, 
+       531, 532, 162, 157, 514, 515, 202, 202, 
+       202, 533, 202, 184, 531, 532, 162, 157, 
+       514, 515, 202, 202, 202, 533, 202, 531, 
+       531, 162, 157, 514, 515, 202, 202, 202, 
+       533, 202, 534, 181, 535, 536, 165, 157, 
+       514, 515, 202, 202, 202, 533, 202, 181, 
+       535, 536, 165, 157, 514, 515, 202, 202, 
+       202, 533, 202, 535, 535, 165, 157, 514, 
+       515, 202, 202, 202, 533, 202, 537, 178, 
+       538, 539, 168, 157, 514, 515, 202, 202, 
+       202, 533, 202, 178, 538, 539, 168, 157, 
+       514, 515, 202, 202, 202, 533, 202, 538, 
+       538, 168, 157, 514, 515, 202, 202, 202, 
+       533, 202, 540, 175, 541, 542, 202, 157, 
+       514, 515, 202, 202, 202, 533, 202, 175, 
+       541, 542, 202, 157, 514, 515, 202, 202, 
+       202, 533, 202, 541, 541, 202, 157, 514, 
+       515, 202, 202, 202, 533, 202, 543, 202, 
+       544, 545, 202, 157, 514, 515, 202, 202, 
+       172, 202, 171, 202, 541, 541, 202, 157, 
+       514, 515, 202, 541, 541, 202, 157, 514, 
+       515, 202, 543, 202, 541, 541, 202, 157, 
+       514, 515, 202, 543, 202, 544, 541, 202, 
+       157, 514, 515, 202, 202, 172, 202, 523, 
+       171, 360, 360, 98, 364, 360, 79, 194, 
+       195, 360, 360, 360, 365, 360, 523, 360, 
+       547, 546, 548, 548, 546, 186, 549, 550, 
+       546, 548, 548, 546, 186, 549, 550, 546, 
+       551, 546, 546, 552, 549, 550, 546, 549, 
+       550, 546, 553, 546, 549, 554, 546, 549, 
+       555, 546, 549, 546, 551, 546, 546, 546, 
+       549, 550, 546, 0
 };
 
 static const short _indic_syllable_machine_trans_targs[] = {
        178, 200, 207, 209, 210, 4, 213, 5, 
        7, 216, 8, 10, 219, 11, 13, 222, 
        14, 16, 17, 199, 19, 20, 221, 22, 
-       23, 218, 25, 26, 215, 224, 229, 233
-       236, 240, 243, 247, 250, 254, 257, 178, 
-       280, 287, 289, 290, 41, 293, 42, 44, 
-       296, 45, 47, 299, 48, 50, 302, 51, 
-       53, 54, 279, 56, 57, 301, 59, 60, 
-       298, 62, 63, 295, 304, 309, 313, 316
-       320, 323, 327, 330, 334, 338, 178, 359
-       366, 368, 369, 78, 372, 178, 79, 81, 
-       375, 82, 84, 378, 85, 87, 381, 88, 
-       90, 91, 358, 93, 94, 380, 96, 97, 
-       377, 99, 100, 374, 383, 388, 392, 395
-       399, 402, 406, 409, 413, 178, 440, 447
-       449, 450, 114, 453, 115, 117, 456, 118, 
-       120, 459, 121, 123, 462, 124, 126, 127, 
-       439, 129, 130, 461, 132, 133, 458, 135, 
-       136, 455, 464, 469, 473, 476, 480, 483
-       487, 490, 494, 497, 417, 502, 513, 152, 
-       516, 154, 519, 155, 157, 522, 158, 160, 
-       525, 161, 528, 530, 531, 166, 167, 527
-       169, 170, 524, 172, 173, 521, 175, 176, 
-       518, 178, 536, 178, 179, 259, 339, 341
-       416, 418, 361, 362, 419, 415, 498, 499
-       386, 534, 387, 178, 180, 182, 36, 258
-       202, 203, 256, 227, 228, 181, 35, 183
-       252, 1, 184, 186, 34, 251, 249, 185
-       33, 187, 245, 188, 190, 32, 244, 242
-       189, 31, 191, 238, 192, 194, 30, 237
-       235, 193, 29, 195, 231, 196, 198, 28
-       230, 226, 197, 27, 212, 0, 201, 206
-       178, 204, 205, 208, 2, 211, 3, 214, 
-       6, 24, 217, 9, 21, 220, 12, 18
-       223, 15, 225, 232, 234, 239, 241, 246
-       248, 253, 255, 178, 260, 262, 73, 336
-       282, 283, 337, 307, 308, 261, 72, 263, 
-       332, 38, 264, 266, 71, 331, 329, 265
-       70, 267, 325, 268, 270, 69, 324, 322
-       269, 68, 271, 318, 272, 274, 67, 317
-       315, 273, 66, 275, 311, 276, 278, 65
-       310, 306, 277, 64, 292, 37, 281, 286
-       178, 284, 285, 288, 39, 291, 40, 294
-       43, 61, 297, 46, 58, 300, 49, 55
-       303, 52, 305, 312, 314, 319, 321, 326
-       328, 333, 335, 178, 340, 109, 342, 411
-       75, 343, 345, 108, 410, 408, 344, 107
-       346, 404, 347, 349, 106, 403, 401, 348
-       105, 350, 397, 351, 353, 104, 396, 394
-       352, 103, 354, 390, 355, 357, 102, 389
-       385, 356, 101, 371, 74, 360, 365, 178
-       363, 364, 367, 76, 370, 77, 373, 80
-       98, 376, 83, 95, 379, 86, 92, 382
-       89, 384, 391, 393, 398, 400, 405, 407
-       412, 414, 178, 178, 420, 422, 146, 145
-       442, 443, 496, 467, 468, 421, 423, 492
-       111, 424, 426, 144, 491, 489, 425, 143
-       427, 485, 428, 430, 142, 484, 482, 429, 
-       141, 431, 478, 432, 434, 140, 477, 475
-       433, 139, 435, 471, 436, 438, 138, 470
-       466, 437, 137, 452, 110, 441, 446, 178
-       444, 445, 448, 112, 451, 113, 454, 116
-       134, 457, 119, 131, 460, 122, 128, 463
-       125, 465, 472, 474, 479, 481, 486, 488
-       493, 495, 147, 500, 501, 515, 504, 505
-       533, 148, 509, 503, 508, 506, 507, 510
-       511, 150, 514, 512, 149, 151, 517, 153
-       174, 163, 520, 156, 171, 523, 159, 168
-       526, 162, 165, 529, 164, 532, 178, 535
-       177, 538, 539, 537, 542, 178, 540, 541
+       23, 218, 25, 26, 215, 224, 228, 232
+       235, 239, 242, 246, 249, 253, 256, 178, 
+       279, 286, 288, 289, 41, 292, 42, 44, 
+       295, 45, 47, 298, 48, 50, 301, 51, 
+       53, 54, 278, 56, 57, 300, 59, 60, 
+       297, 62, 63, 294, 303, 307, 311, 314
+       318, 321, 325, 328, 332, 336, 178, 357
+       364, 366, 367, 78, 370, 178, 79, 81, 
+       373, 82, 84, 376, 85, 87, 379, 88, 
+       90, 91, 356, 93, 94, 378, 96, 97, 
+       375, 99, 100, 372, 381, 385, 389, 392
+       396, 399, 403, 406, 410, 178, 437, 444
+       446, 447, 114, 450, 115, 117, 453, 118, 
+       120, 456, 121, 123, 459, 124, 126, 127, 
+       436, 129, 130, 458, 132, 133, 455, 135, 
+       136, 452, 461, 465, 469, 472, 476, 479
+       483, 486, 490, 493, 414, 498, 509, 152, 
+       512, 154, 515, 155, 157, 518, 158, 160, 
+       521, 161, 524, 526, 527, 166, 167, 523
+       169, 170, 520, 172, 173, 517, 175, 176, 
+       514, 178, 532, 178, 179, 258, 337, 339
+       413, 415, 359, 360, 416, 412, 494, 495
+       384, 530, 178, 180, 182, 36, 257, 202
+       203, 255, 227, 181, 35, 183, 251, 1
+       184, 186, 34, 250, 248, 185, 33, 187
+       244, 188, 190, 32, 243, 241, 189, 31
+       191, 237, 192, 194, 30, 236, 234, 193
+       29, 195, 230, 196, 198, 28, 229, 226
+       197, 27, 212, 0, 201, 206, 178, 204
+       205, 208, 2, 211, 3, 214, 6, 24, 
+       217, 9, 21, 220, 12, 18, 223, 15
+       225, 231, 233, 238, 240, 245, 247, 252
+       254, 178, 259, 261, 73, 334, 281, 282
+       335, 306, 260, 72, 262, 330, 38, 263, 
+       265, 71, 329, 327, 264, 70, 266, 323
+       267, 269, 69, 322, 320, 268, 68, 270
+       316, 271, 273, 67, 315, 313, 272, 66
+       274, 309, 275, 277, 65, 308, 305, 276
+       64, 291, 37, 280, 285, 178, 283, 284
+       287, 39, 290, 40, 293, 43, 61, 296
+       46, 58, 299, 49, 55, 302, 52, 304
+       310, 312, 317, 319, 324, 326, 331, 333
+       178, 338, 109, 340, 408, 75, 341, 343
+       108, 407, 405, 342, 107, 344, 401, 345
+       347, 106, 400, 398, 346, 105, 348, 394
+       349, 351, 104, 393, 391, 350, 103, 352
+       387, 353, 355, 102, 386, 383, 354, 101
+       369, 74, 358, 363, 178, 361, 362, 365
+       76, 368, 77, 371, 80, 98, 374, 83
+       95, 377, 86, 92, 380, 89, 382, 388
+       390, 395, 397, 402, 404, 409, 411, 178
+       178, 417, 419, 146, 145, 439, 440, 492
+       464, 418, 420, 488, 111, 421, 423, 144
+       487, 485, 422, 143, 424, 481, 425, 427
+       142, 480, 478, 426, 141, 428, 474, 429, 
+       431, 140, 473, 471, 430, 139, 432, 467
+       433, 435, 138, 466, 463, 434, 137, 449
+       110, 438, 443, 178, 441, 442, 445, 112
+       448, 113, 451, 116, 134, 454, 119, 131
+       457, 122, 128, 460, 125, 462, 468, 470
+       475, 477, 482, 484, 489, 491, 147, 496
+       497, 511, 500, 501, 529, 148, 505, 499
+       504, 502, 503, 506, 507, 150, 510, 508
+       149, 151, 513, 153, 174, 163, 516, 156
+       171, 519, 159, 168, 522, 162, 165, 525
+       164, 528, 178, 531, 177, 534, 535, 533
+       538, 178, 536, 537
 };
 
 static const char _indic_syllable_machine_trans_actions[] = {
@@ -1285,51 +1087,51 @@ static const char _indic_syllable_machine_trans_actions[] = {
        0, 0, 2, 0, 0, 2, 0, 0, 
        2, 9, 0, 12, 2, 2, 6, 2, 
        13, 13, 0, 0, 2, 2, 6, 2, 
-       6, 2, 6, 14, 2, 2, 0, 2, 
-       0, 0, 2, 2, 2, 2, 0, 2, 
-       2, 0, 2, 2, 0, 2, 2, 2, 
-       0, 2, 2, 2, 2, 0, 2, 2, 
-       2, 0, 2, 2, 2, 2, 0, 2, 
-       2, 2, 0, 2, 2, 2, 2, 0, 
-       2, 2, 2, 0, 2, 0, 0, 0, 
-       15, 0, 0, 2, 0, 2, 0, 2, 
-       0, 0, 2, 0, 0, 2, 0, 0, 
-       2, 0, 2, 2, 2, 2, 2, 2, 
-       2, 2, 2, 16, 2, 2, 0, 2, 
-       0, 0, 2, 2, 2, 2, 0, 2, 
-       2, 0, 2, 2, 0, 2, 2, 2, 
-       0, 2, 2, 2, 2, 0, 2, 2, 
-       2, 0, 2, 2, 2, 2, 0, 2, 
-       2, 2, 0, 2, 2, 2, 2, 0, 
-       2, 2, 2, 0, 2, 0, 0, 0, 
-       17, 0, 0, 2, 0, 2, 0, 2, 
-       0, 0, 2, 0, 0, 2, 0, 0, 
-       2, 0, 2, 2, 2, 2, 2, 2, 
-       2, 2, 2, 18, 6, 0, 6, 6, 
-       0, 6, 2, 0, 6, 2, 6, 0, 
-       6, 6, 6, 2, 0, 6, 2, 6, 
-       0, 6, 6, 6, 2, 0, 6, 2, 
-       6, 0, 6, 6, 6, 2, 0, 6, 
-       2, 6, 0, 6, 0, 0, 0, 19, 
-       0, 0, 2, 0, 2, 0, 2, 0, 
-       0, 2, 0, 0, 2, 0, 0, 2, 
-       0, 2, 2, 2, 2, 2, 2, 2, 
-       2, 2, 20, 21, 2, 2, 0, 0, 
-       0, 0, 2, 2, 2, 2, 2, 2, 
-       0, 2, 2, 0, 2, 2, 2, 0, 
+       6, 2, 14, 2, 2, 0, 2, 0, 
+       0, 2, 2, 2, 0, 2, 2, 0, 
+       2, 2, 0, 2, 2, 2, 0, 2, 
+       2, 2, 2, 0, 2, 2, 2, 0, 
        2, 2, 2, 2, 0, 2, 2, 2, 
        0, 2, 2, 2, 2, 0, 2, 2, 
-       2, 0, 2, 2, 2, 2, 0, 2, 
-       2, 2, 0, 2, 0, 0, 0, 22, 
-       0, 0, 2, 0, 2, 0, 2, 0, 
+       2, 0, 2, 0, 0, 0, 15, 0, 
+       0, 2, 0, 2, 0, 2, 0, 0, 
+       2, 0, 0, 2, 0, 0, 2, 0, 
+       2, 2, 2, 2, 2, 2, 2, 2, 
+       2, 16, 2, 2, 0, 2, 0, 0, 
+       2, 2, 2, 0, 2, 2, 0, 2, 
+       2, 0, 2, 2, 2, 0, 2, 2, 
+       2, 2, 0, 2, 2, 2, 0, 2, 
+       2, 2, 2, 0, 2, 2, 2, 0, 
+       2, 2, 2, 2, 0, 2, 2, 2, 
+       0, 2, 0, 0, 0, 17, 0, 0, 
+       2, 0, 2, 0, 2, 0, 0, 2, 
+       0, 0, 2, 0, 0, 2, 0, 2, 
+       2, 2, 2, 2, 2, 2, 2, 2, 
+       18, 6, 0, 6, 6, 0, 6, 2, 
+       0, 6, 2, 6, 0, 6, 6, 6, 
+       2, 0, 6, 2, 6, 0, 6, 6, 
+       6, 2, 0, 6, 2, 6, 0, 6, 
+       6, 6, 2, 0, 6, 2, 6, 0, 
+       6, 0, 0, 0, 19, 0, 0, 2, 
+       0, 2, 0, 2, 0, 0, 2, 0, 
+       0, 2, 0, 0, 2, 0, 2, 2, 
+       2, 2, 2, 2, 2, 2, 2, 20, 
+       21, 2, 2, 0, 0, 0, 0, 2, 
+       2, 2, 2, 2, 0, 2, 2, 0, 
+       2, 2, 2, 0, 2, 2, 2, 2, 
+       0, 2, 2, 2, 0, 2, 2, 2, 
+       2, 0, 2, 2, 2, 0, 2, 2, 
+       2, 2, 0, 2, 2, 2, 0, 2, 
+       0, 0, 0, 22, 0, 0, 2, 0, 
+       2, 0, 2, 0, 0, 2, 0, 0, 
+       2, 0, 0, 2, 0, 2, 2, 2, 
+       2, 2, 2, 2, 2, 2, 0, 0, 
+       8, 2, 0, 0, 2, 0, 2, 0, 
+       0, 0, 0, 8, 8, 0, 8, 8, 
+       0, 0, 2, 0, 0, 0, 2, 0, 
        0, 2, 0, 0, 2, 0, 0, 2, 
-       0, 2, 2, 2, 2, 2, 2, 2, 
-       2, 2, 0, 0, 8, 2, 0, 0, 
-       2, 0, 2, 0, 0, 0, 0, 8, 
-       8, 0, 8, 8, 0, 0, 2, 0, 
-       0, 0, 2, 0, 0, 2, 0, 0, 
-       2, 0, 0, 2, 0, 2, 23, 2, 
-       0, 0, 0, 0, 0, 24, 0, 0
+       0, 2, 23, 2, 0, 0, 0, 0, 
+       0, 24, 0, 0
 };
 
 static const char _indic_syllable_machine_to_state_actions[] = {
@@ -1400,7 +1202,7 @@ static const char _indic_syllable_machine_to_state_actions[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 0, 0
+       0, 0, 0
 };
 
 static const char _indic_syllable_machine_from_state_actions[] = {
@@ -1471,7 +1273,7 @@ static const char _indic_syllable_machine_from_state_actions[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 0, 0
+       0, 0, 0
 };
 
 static const short _indic_syllable_machine_eof_trans[] = {
@@ -1497,52 +1299,52 @@ static const short _indic_syllable_machine_eof_trans[] = {
        1, 1, 1, 1, 1, 1, 1, 1, 
        1, 1, 1, 1, 1, 1, 1, 1, 
        1, 1, 1, 1, 1, 1, 1, 1, 
-       1, 186, 0, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 284, 284, 284, 284, 284
-       284, 284, 284, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       364, 364, 364, 364, 364, 364, 364, 364
-       435, 364, 435, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 436, 436, 436, 436, 436, 436
-       436, 436, 364, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 364, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 204, 204, 204
-       204, 204, 204, 204, 204, 364, 551, 551
-       551, 551, 551, 551, 551, 551, 551
+       1, 186, 0, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 282, 282, 282, 282, 282, 282, 282
+       282, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 361, 361, 361
+       361, 361, 361, 361, 361, 432, 361, 432
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 433, 433
+       433, 433, 433, 433, 433, 433, 361, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 361, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 203, 203, 203, 203, 203, 203, 203
+       203, 361, 547, 547, 547, 547, 547, 547
+       547, 547, 547
 };
 
 static const int indic_syllable_machine_start = 178;
@@ -1556,7 +1358,7 @@ static const int indic_syllable_machine_en_main = 178;
 
 
 
-#line 97 "hb-ot-shape-complex-indic-machine.rl"
+#line 96 "hb-ot-shape-complex-indic-machine.rl"
 
 
 #define found_syllable(syllable_type) \
@@ -1576,7 +1378,7 @@ find_syllables (hb_buffer_t *buffer)
   int cs;
   hb_glyph_info_t *info = buffer->info;
   
-#line 1580 "hb-ot-shape-complex-indic-machine.hh"
+#line 1382 "hb-ot-shape-complex-indic-machine.hh"
        {
        cs = indic_syllable_machine_start;
        ts = 0;
@@ -1584,7 +1386,7 @@ find_syllables (hb_buffer_t *buffer)
        act = 0;
        }
 
-#line 118 "hb-ot-shape-complex-indic-machine.rl"
+#line 117 "hb-ot-shape-complex-indic-machine.rl"
 
 
   p = 0;
@@ -1593,7 +1395,7 @@ find_syllables (hb_buffer_t *buffer)
   unsigned int last = 0;
   unsigned int syllable_serial = 1;
   
-#line 1597 "hb-ot-shape-complex-indic-machine.hh"
+#line 1399 "hb-ot-shape-complex-indic-machine.hh"
        {
        int _slen;
        int _trans;
@@ -1607,7 +1409,7 @@ _resume:
 #line 1 "NONE"
        {ts = p;}
        break;
-#line 1611 "hb-ot-shape-complex-indic-machine.hh"
+#line 1413 "hb-ot-shape-complex-indic-machine.hh"
        }
 
        _keys = _indic_syllable_machine_trans_keys + (cs<<1);
@@ -1630,71 +1432,71 @@ _eof_trans:
        {te = p+1;}
        break;
        case 15:
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 87 "hb-ot-shape-complex-indic-machine.rl"
        {te = p+1;{ found_syllable (consonant_syllable); }}
        break;
        case 17:
-#line 89 "hb-ot-shape-complex-indic-machine.rl"
+#line 88 "hb-ot-shape-complex-indic-machine.rl"
        {te = p+1;{ found_syllable (vowel_syllable); }}
        break;
        case 22:
-#line 90 "hb-ot-shape-complex-indic-machine.rl"
+#line 89 "hb-ot-shape-complex-indic-machine.rl"
        {te = p+1;{ found_syllable (standalone_cluster); }}
        break;
        case 24:
-#line 91 "hb-ot-shape-complex-indic-machine.rl"
+#line 90 "hb-ot-shape-complex-indic-machine.rl"
        {te = p+1;{ found_syllable (symbol_cluster); }}
        break;
        case 19:
-#line 92 "hb-ot-shape-complex-indic-machine.rl"
+#line 91 "hb-ot-shape-complex-indic-machine.rl"
        {te = p+1;{ found_syllable (broken_cluster); }}
        break;
        case 12:
-#line 93 "hb-ot-shape-complex-indic-machine.rl"
+#line 92 "hb-ot-shape-complex-indic-machine.rl"
        {te = p+1;{ found_syllable (non_indic_cluster); }}
        break;
        case 14:
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 87 "hb-ot-shape-complex-indic-machine.rl"
        {te = p;p--;{ found_syllable (consonant_syllable); }}
        break;
        case 16:
-#line 89 "hb-ot-shape-complex-indic-machine.rl"
+#line 88 "hb-ot-shape-complex-indic-machine.rl"
        {te = p;p--;{ found_syllable (vowel_syllable); }}
        break;
        case 21:
-#line 90 "hb-ot-shape-complex-indic-machine.rl"
+#line 89 "hb-ot-shape-complex-indic-machine.rl"
        {te = p;p--;{ found_syllable (standalone_cluster); }}
        break;
        case 23:
-#line 91 "hb-ot-shape-complex-indic-machine.rl"
+#line 90 "hb-ot-shape-complex-indic-machine.rl"
        {te = p;p--;{ found_syllable (symbol_cluster); }}
        break;
        case 18:
-#line 92 "hb-ot-shape-complex-indic-machine.rl"
+#line 91 "hb-ot-shape-complex-indic-machine.rl"
        {te = p;p--;{ found_syllable (broken_cluster); }}
        break;
        case 20:
-#line 93 "hb-ot-shape-complex-indic-machine.rl"
+#line 92 "hb-ot-shape-complex-indic-machine.rl"
        {te = p;p--;{ found_syllable (non_indic_cluster); }}
        break;
        case 1:
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 87 "hb-ot-shape-complex-indic-machine.rl"
        {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
        break;
        case 3:
-#line 89 "hb-ot-shape-complex-indic-machine.rl"
+#line 88 "hb-ot-shape-complex-indic-machine.rl"
        {{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
        break;
        case 7:
-#line 90 "hb-ot-shape-complex-indic-machine.rl"
+#line 89 "hb-ot-shape-complex-indic-machine.rl"
        {{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
        break;
        case 9:
-#line 91 "hb-ot-shape-complex-indic-machine.rl"
+#line 90 "hb-ot-shape-complex-indic-machine.rl"
        {{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
        break;
        case 4:
-#line 92 "hb-ot-shape-complex-indic-machine.rl"
+#line 91 "hb-ot-shape-complex-indic-machine.rl"
        {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
        break;
        case 5:
@@ -1715,22 +1517,22 @@ _eof_trans:
        case 8:
 #line 1 "NONE"
        {te = p+1;}
-#line 88 "hb-ot-shape-complex-indic-machine.rl"
+#line 87 "hb-ot-shape-complex-indic-machine.rl"
        {act = 1;}
        break;
        case 6:
 #line 1 "NONE"
        {te = p+1;}
-#line 92 "hb-ot-shape-complex-indic-machine.rl"
+#line 91 "hb-ot-shape-complex-indic-machine.rl"
        {act = 5;}
        break;
        case 13:
 #line 1 "NONE"
        {te = p+1;}
-#line 93 "hb-ot-shape-complex-indic-machine.rl"
+#line 92 "hb-ot-shape-complex-indic-machine.rl"
        {act = 6;}
        break;
-#line 1734 "hb-ot-shape-complex-indic-machine.hh"
+#line 1536 "hb-ot-shape-complex-indic-machine.hh"
        }
 
 _again:
@@ -1739,7 +1541,7 @@ _again:
 #line 1 "NONE"
        {ts = 0;}
        break;
-#line 1743 "hb-ot-shape-complex-indic-machine.hh"
+#line 1545 "hb-ot-shape-complex-indic-machine.hh"
        }
 
        if ( ++p != pe )
@@ -1755,7 +1557,7 @@ _again:
 
        }
 
-#line 127 "hb-ot-shape-complex-indic-machine.rl"
+#line 126 "hb-ot-shape-complex-indic-machine.rl"
 
 }
 
index 694b235..86a7ceb 100644 (file)
@@ -57,7 +57,6 @@ Repha = 15;
 Ra    = 16;
 CM    = 17;
 Symbol= 18;
-CM2   = 31;
 
 c = (C | Ra);                  # is_consonant
 n = ((ZWNJ?.RS)? (N.N?)?);     # is_consonant_modifier
@@ -73,7 +72,7 @@ syllable_tail = (z?.SM.SM?.ZWNJ?)? A{0,3}? VD{0,2};
 place_holder = PLACEHOLDER | DOTTEDCIRCLE;
 halant_group = (z?.h.(ZWJ.N?)?);
 final_halant_group = halant_group | h.ZWNJ;
-medial_group = CM?.CM2?;
+medial_group = CM?;
 halant_or_matra_group = (final_halant_group | (h.ZWJ)? matra_group{0,4}) (Coeng (cn|V))?;
 
 
index 326b364..5879c3e 100644 (file)
@@ -60,11 +60,10 @@ enum indic_category_t {
   OT_Repha = 15, /* Atomically-encoded logical or visual repha. */
   OT_Ra = 16,
   OT_CM = 17,  /* Consonant-Medial. */
-  OT_Symbol = 18, /* Avagraha, etc that take marks (SM,A,VD). */
-  OT_CM2 = 31 /* Consonant-Medial, second slot. */
+  OT_Symbol = 18 /* Avagraha, etc that take marks (SM,A,VD). */
 };
 
-#define MEDIAL_FLAGS (FLAG (OT_CM) | FLAG (OT_CM2))
+#define MEDIAL_FLAGS (FLAG (OT_CM))
 
 /* Note:
  *
index 90abb55..80a6b25 100644 (file)
@@ -2,35 +2,35 @@
 /*
  * The following table is generated by running:
  *
- *   ./gen-indic-table.py IndicSyllabicCategory.txt IndicMatraCategory.txt Blocks.txt
+ *   ./gen-indic-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt Blocks.txt
  *
  * on files with these headers:
  *
- * # IndicSyllabicCategory-8.0.0.txt
- * # Date: 2015-05-12, 10:00:00 GMT [RP, KW, LI]
- * # IndicPositionalCategory-8.0.0.txt
- * # Date: 2015-05-12, 10:00:00 GMT [RP, KW, LI]
- * # Blocks-8.0.0.txt
- * # Date: 2014-11-10, 23:04:00 GMT [KW]
+ * # IndicSyllabicCategory-9.0.0.txt
+ * # Date: 2016-05-21, 02:46:00 GMT [RP]
+ * # IndicPositionalCategory-9.0.0.txt
+ * # Date: 2016-02-25, 00:48:00 GMT [RP]
+ * # Blocks-9.0.0.txt
+ * # Date: 2016-02-05, 23:48:00 GMT [KW]
  */
 
 #include "hb-ot-shape-complex-indic-private.hh"
 
 
-#define ISC_A  INDIC_SYLLABIC_CATEGORY_AVAGRAHA                /*  13 chars; Avagraha */
-#define ISC_Bi INDIC_SYLLABIC_CATEGORY_BINDU                   /*  60 chars; Bindu */
+#define ISC_A  INDIC_SYLLABIC_CATEGORY_AVAGRAHA                /*  15 chars; Avagraha */
+#define ISC_Bi INDIC_SYLLABIC_CATEGORY_BINDU                   /*  67 chars; Bindu */
 #define ISC_BJN        INDIC_SYLLABIC_CATEGORY_BRAHMI_JOINING_NUMBER   /*  20 chars; Brahmi_Joining_Number */
-#define ISC_Ca INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK       /*  52 chars; Cantillation_Mark */
-#define ISC_C  INDIC_SYLLABIC_CATEGORY_CONSONANT               /* 1805 chars; Consonant */
-#define ISC_CD INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD          /*   7 chars; Consonant_Dead */
+#define ISC_Ca INDIC_SYLLABIC_CATEGORY_CANTILLATION_MARK       /*  53 chars; Cantillation_Mark */
+#define ISC_C  INDIC_SYLLABIC_CATEGORY_CONSONANT               /* 1907 chars; Consonant */
+#define ISC_CD INDIC_SYLLABIC_CATEGORY_CONSONANT_DEAD          /*  10 chars; Consonant_Dead */
 #define ISC_CF INDIC_SYLLABIC_CATEGORY_CONSONANT_FINAL         /*  62 chars; Consonant_Final */
 #define ISC_CHL        INDIC_SYLLABIC_CATEGORY_CONSONANT_HEAD_LETTER   /*   5 chars; Consonant_Head_Letter */
 #define ISC_CK INDIC_SYLLABIC_CATEGORY_CONSONANT_KILLER        /*   2 chars; Consonant_Killer */
 #define ISC_CM INDIC_SYLLABIC_CATEGORY_CONSONANT_MEDIAL        /*  22 chars; Consonant_Medial */
-#define ISC_CP INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER   /*  13 chars; Consonant_Placeholder */
+#define ISC_CP INDIC_SYLLABIC_CATEGORY_CONSONANT_PLACEHOLDER   /*  16 chars; Consonant_Placeholder */
 #define ISC_CPR        INDIC_SYLLABIC_CATEGORY_CONSONANT_PRECEDING_REPHA       /*   1 chars; Consonant_Preceding_Repha */
 #define ISC_CPrf       INDIC_SYLLABIC_CATEGORY_CONSONANT_PREFIXED      /*   2 chars; Consonant_Prefixed */
-#define ISC_CS INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED     /*  61 chars; Consonant_Subjoined */
+#define ISC_CS INDIC_SYLLABIC_CATEGORY_CONSONANT_SUBJOINED     /*  90 chars; Consonant_Subjoined */
 #define ISC_CSR        INDIC_SYLLABIC_CATEGORY_CONSONANT_SUCCEEDING_REPHA      /*   4 chars; Consonant_Succeeding_Repha */
 #define ISC_CWS        INDIC_SYLLABIC_CATEGORY_CONSONANT_WITH_STACKER  /*   4 chars; Consonant_With_Stacker */
 #define ISC_GM INDIC_SYLLABIC_CATEGORY_GEMINATION_MARK         /*   2 chars; Gemination_Mark */
 #define ISC_ZWJ        INDIC_SYLLABIC_CATEGORY_JOINER                  /*   1 chars; Joiner */
 #define ISC_ML INDIC_SYLLABIC_CATEGORY_MODIFYING_LETTER        /*   1 chars; Modifying_Letter */
 #define ISC_ZWNJ       INDIC_SYLLABIC_CATEGORY_NON_JOINER              /*   1 chars; Non_Joiner */
-#define ISC_N  INDIC_SYLLABIC_CATEGORY_NUKTA                   /*  23 chars; Nukta */
-#define ISC_Nd INDIC_SYLLABIC_CATEGORY_NUMBER                  /* 420 chars; Number */
+#define ISC_N  INDIC_SYLLABIC_CATEGORY_NUKTA                   /*  24 chars; Nukta */
+#define ISC_Nd INDIC_SYLLABIC_CATEGORY_NUMBER                  /* 459 chars; Number */
 #define ISC_NJ INDIC_SYLLABIC_CATEGORY_NUMBER_JOINER           /*   1 chars; Number_Joiner */
 #define ISC_x  INDIC_SYLLABIC_CATEGORY_OTHER                   /*   1 chars; Other */
 #define ISC_PK INDIC_SYLLABIC_CATEGORY_PURE_KILLER             /*  16 chars; Pure_Killer */
 #define ISC_RS INDIC_SYLLABIC_CATEGORY_REGISTER_SHIFTER        /*   2 chars; Register_Shifter */
-#define ISC_SM INDIC_SYLLABIC_CATEGORY_SYLLABLE_MODIFIER       /*  20 chars; Syllable_Modifier */
+#define ISC_SM INDIC_SYLLABIC_CATEGORY_SYLLABLE_MODIFIER       /*  22 chars; Syllable_Modifier */
 #define ISC_TL INDIC_SYLLABIC_CATEGORY_TONE_LETTER             /*   7 chars; Tone_Letter */
 #define ISC_TM INDIC_SYLLABIC_CATEGORY_TONE_MARK               /*  42 chars; Tone_Mark */
-#define ISC_V  INDIC_SYLLABIC_CATEGORY_VIRAMA                  /*  22 chars; Virama */
-#define ISC_Vs INDIC_SYLLABIC_CATEGORY_VISARGA                 /*  29 chars; Visarga */
+#define ISC_V  INDIC_SYLLABIC_CATEGORY_VIRAMA                  /*  24 chars; Virama */
+#define ISC_Vs INDIC_SYLLABIC_CATEGORY_VISARGA                 /*  31 chars; Visarga */
 #define ISC_Vo INDIC_SYLLABIC_CATEGORY_VOWEL                   /*  30 chars; Vowel */
-#define ISC_M  INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT         /* 572 chars; Vowel_Dependent */
-#define ISC_VI INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT       /* 404 chars; Vowel_Independent */
+#define ISC_M  INDIC_SYLLABIC_CATEGORY_VOWEL_DEPENDENT         /* 602 chars; Vowel_Dependent */
+#define ISC_VI INDIC_SYLLABIC_CATEGORY_VOWEL_INDEPENDENT       /* 431 chars; Vowel_Independent */
 
-#define IMC_B  INDIC_MATRA_CATEGORY_BOTTOM                     /* 256 chars; Bottom */
+#define IMC_B  INDIC_MATRA_CATEGORY_BOTTOM                     /* 300 chars; Bottom */
 #define IMC_BR INDIC_MATRA_CATEGORY_BOTTOM_AND_RIGHT           /*   2 chars; Bottom_And_Right */
-#define IMC_L  INDIC_MATRA_CATEGORY_LEFT                       /*  55 chars; Left */
+#define IMC_L  INDIC_MATRA_CATEGORY_LEFT                       /*  57 chars; Left */
 #define IMC_LR INDIC_MATRA_CATEGORY_LEFT_AND_RIGHT             /*  21 chars; Left_And_Right */
 #define IMC_x  INDIC_MATRA_CATEGORY_NOT_APPLICABLE             /*   1 chars; Not_Applicable */
 #define IMC_O  INDIC_MATRA_CATEGORY_OVERSTRUCK                 /*  10 chars; Overstruck */
-#define IMC_R  INDIC_MATRA_CATEGORY_RIGHT                      /* 249 chars; Right */
-#define IMC_T  INDIC_MATRA_CATEGORY_TOP                        /* 324 chars; Top */
+#define IMC_R  INDIC_MATRA_CATEGORY_RIGHT                      /* 258 chars; Right */
+#define IMC_T  INDIC_MATRA_CATEGORY_TOP                        /* 342 chars; Top */
 #define IMC_TB INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM             /*  10 chars; Top_And_Bottom */
 #define IMC_TBR        INDIC_MATRA_CATEGORY_TOP_AND_BOTTOM_AND_RIGHT   /*   1 chars; Top_And_Bottom_And_Right */
 #define IMC_TL INDIC_MATRA_CATEGORY_TOP_AND_LEFT               /*   6 chars; Top_And_Left */
@@ -261,7 +261,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
   /* 0D38 */  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(x,x),  _(A,x),  _(M,R),  _(M,R),
   /* 0D40 */  _(M,R),  _(M,R),  _(M,R),  _(M,B),  _(M,B),  _(x,x),  _(M,L),  _(M,L),
   /* 0D48 */  _(M,L),  _(x,x), _(M,LR), _(M,LR), _(M,LR),  _(V,T),_(CPR,x),  _(x,x),
-  /* 0D50 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(M,R),
+  /* 0D50 */  _(x,x),  _(x,x),  _(x,x),  _(x,x), _(CD,x), _(CD,x), _(CD,x),  _(M,R),
   /* 0D58 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x), _(VI,x),
   /* 0D60 */ _(VI,x), _(VI,x),  _(M,B),  _(M,B),  _(x,x),  _(x,x), _(Nd,x), _(Nd,x),
   /* 0D68 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
@@ -312,37 +312,9 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
   /* 1090 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
   /* 1098 */ _(Nd,x), _(Nd,x), _(TM,R), _(TM,R),  _(M,R),  _(M,T),  _(x,x),  _(x,x),
 
-#define indic_offset_0x1700u 1496
+#define indic_offset_0x1780u 1496
 
 
-  /* Tagalog */
-
-  /* 1700 */ _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1708 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(C,x),  _(C,x),
-  /* 1710 */  _(C,x),  _(C,x),  _(M,T),  _(M,B), _(PK,B),  _(x,x),  _(x,x),  _(x,x),
-  /* 1718 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Hanunoo */
-
-  /* 1720 */ _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1728 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1730 */  _(C,x),  _(C,x),  _(M,T),  _(M,B), _(PK,B),  _(x,x),  _(x,x),  _(x,x),
-  /* 1738 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Buhid */
-
-  /* 1740 */ _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1748 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1750 */  _(C,x),  _(C,x),  _(M,T),  _(M,B),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1758 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Tagbanwa */
-
-  /* 1760 */ _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1768 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(C,x),  _(C,x),
-  /* 1770 */  _(C,x),  _(x,x),  _(M,T),  _(M,B),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1778 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
   /* Khmer */
 
   /* 1780 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
@@ -356,138 +328,11 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
   /* 17C0 */ _(M,LR),  _(M,L),  _(M,L),  _(M,L), _(M,LR), _(M,LR), _(Bi,T), _(Vs,R),
   /* 17C8 */  _(M,R), _(RS,T), _(RS,T), _(SM,T),_(CSR,T), _(CK,T), _(SM,T), _(SM,T),
   /* 17D0 */ _(SM,T), _(PK,T), _(IS,x), _(SM,T),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 17D8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(A,x),  _(x,T),  _(x,x),  _(x,x),
+  /* 17D8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(A,x), _(SM,T),  _(x,x),  _(x,x),
   /* 17E0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
   /* 17E8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
 
-#define indic_offset_0x1900u 1736
-
-
-  /* Limbu */
-
-  /* 1900 */ _(CP,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1908 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1910 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1918 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),
-  /* 1920 */  _(M,T),  _(M,T),  _(M,B),  _(M,R),  _(M,R), _(M,TR), _(M,TR),  _(M,T),
-  /* 1928 */  _(M,T), _(CS,R), _(CS,R), _(CS,R),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1930 */ _(CF,R), _(CF,R), _(Bi,B), _(CF,R), _(CF,R), _(CF,R), _(CF,R), _(CF,R),
-  /* 1938 */ _(CF,R), _(CF,B),  _(M,T), _(SM,B),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1940 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x), _(Nd,x), _(Nd,x),
-  /* 1948 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-
-  /* Tai Le */
-
-  /* 1950 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1958 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1960 */  _(C,x),  _(C,x),  _(C,x), _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x),
-  /* 1968 */ _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x),  _(x,x),  _(x,x),
-  /* 1970 */ _(TL,x), _(TL,x), _(TL,x), _(TL,x), _(TL,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1978 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* New Tai Lue */
-
-  /* 1980 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1988 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1990 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1998 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 19A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 19A8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 19B0 */  _(M,R),  _(M,R),  _(M,R),  _(M,R),  _(M,R),_(M,VOL),_(M,VOL),_(M,VOL),
-  /* 19B8 */  _(M,R),  _(M,R),_(M,VOL),  _(M,R),  _(M,R),  _(M,R),  _(M,R),  _(M,R),
-  /* 19C0 */  _(M,R), _(CF,x), _(CF,x), _(CF,x), _(CF,x), _(CF,x), _(CF,x), _(CF,x),
-  /* 19C8 */ _(TM,R), _(TM,R),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 19D0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 19D8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 19E0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 19E8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 19F0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 19F8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Buginese */
-
-  /* 1A00 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1A08 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1A10 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(M,T),
-  /* 1A18 */  _(M,B),  _(M,L),  _(M,R),  _(M,T),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Tai Tham */
-
-  /* 1A20 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1A28 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1A30 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1A38 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1A40 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1A48 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 1A50 */ _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x), _(CM,L), _(CM,B), _(CF,R),
-  /* 1A58 */ _(CF,T), _(CF,T), _(CF,T), _(CF,B), _(CF,B), _(CF,B), _(CF,B),  _(x,x),
-  /* 1A60 */ _(IS,x),  _(M,R),  _(M,T),  _(M,R),  _(M,R),  _(M,T),  _(M,T),  _(M,T),
-  /* 1A68 */  _(M,T),  _(M,B),  _(M,B),  _(M,T),  _(M,B),  _(M,R),  _(M,L),  _(M,L),
-  /* 1A70 */  _(M,L),  _(M,L),  _(M,L),  _(M,T),  _(M,T), _(TM,T), _(TM,T), _(TM,T),
-  /* 1A78 */ _(TM,T), _(TM,T), _(SM,T), _(SM,T), _(SM,T),  _(x,x),  _(x,x), _(SM,B),
-  /* 1A80 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 1A88 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1A90 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 1A98 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-#define indic_offset_0x1b00u 2152
-
-
-  /* Balinese */
-
-  /* 1B00 */ _(Bi,T), _(Bi,T), _(Bi,T),_(CSR,T), _(Vs,R), _(VI,x), _(VI,x), _(VI,x),
-  /* 1B08 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 1B10 */ _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1B18 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1B20 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1B28 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1B30 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(N,T),  _(M,R),  _(M,T),  _(M,T),
-  /* 1B38 */  _(M,B),  _(M,B),  _(M,B), _(M,BR), _(M,TB),_(M,TBR),  _(M,L),  _(M,L),
-  /* 1B40 */ _(M,LR), _(M,LR),  _(M,T), _(M,TR),  _(V,R),  _(C,x),  _(C,x),  _(C,x),
-  /* 1B48 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1B50 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 1B58 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1B60 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1B68 */  _(x,x),  _(x,x),  _(x,x),  _(x,T),  _(x,B),  _(x,T),  _(x,T),  _(x,T),
-  /* 1B70 */  _(x,T),  _(x,T),  _(x,T),  _(x,T),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1B78 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Sundanese */
-
-  /* 1B80 */ _(Bi,T),_(CSR,T), _(Vs,R), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 1B88 */ _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1B90 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1B98 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1BA0 */  _(C,x), _(CS,R), _(CS,B), _(CS,B),  _(M,T),  _(M,B),  _(M,L),  _(M,R),
-  /* 1BA8 */  _(M,T),  _(M,T), _(PK,R), _(IS,x), _(CS,B), _(CS,B),  _(C,x),  _(C,x),
-  /* 1BB0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 1BB8 */ _(Nd,x), _(Nd,x),  _(A,x),  _(C,x),  _(C,x),  _(C,x), _(CF,x), _(CF,x),
-
-  /* Batak */
-
-  /* 1BC0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1BC8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1BD0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1BD8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1BE0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x), _(VI,x), _(VI,x),  _(N,T),  _(M,R),
-  /* 1BE8 */  _(M,T),  _(M,T),  _(M,R),  _(M,R),  _(M,R),  _(M,T),  _(M,R),  _(M,T),
-  /* 1BF0 */ _(CF,T), _(CF,T), _(PK,R), _(PK,R),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1BF8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Lepcha */
-
-  /* 1C00 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1C08 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1C10 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1C18 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 1C20 */  _(C,x),  _(C,x),  _(C,x),  _(C,x), _(CS,R), _(CS,R),  _(M,R),  _(M,L),
-  /* 1C28 */  _(M,L), _(M,TL),  _(M,R),  _(M,R),  _(M,B), _(CF,T), _(CF,T), _(CF,T),
-  /* 1C30 */ _(CF,T), _(CF,T), _(CF,T), _(CF,T), _(Bi,L), _(Bi,L), _(SM,T),  _(N,B),
-  /* 1C38 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 1C40 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 1C48 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(C,x),  _(C,x),  _(C,x),
-
-#define indic_offset_0x1cd0u 2488
+#define indic_offset_0x1cd0u 1608
 
 
   /* Vedic Extensions */
@@ -499,7 +344,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
   /* 1CF0 */  _(x,x),  _(x,x), _(Vs,x), _(Vs,x), _(Ca,T),  _(x,x),  _(x,x),  _(x,x),
   /* 1CF8 */ _(Ca,x), _(Ca,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
 
-#define indic_offset_0x2008u 2536
+#define indic_offset_0x2008u 1656
 
 
   /* General Punctuation */
@@ -507,7 +352,7 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
   /* 2008 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),_(ZWNJ,x),_(ZWJ,x),  _(x,x),  _(x,x),
   /* 2010 */ _(CP,x), _(CP,x), _(CP,x), _(CP,x), _(CP,x),  _(x,x),  _(x,x),  _(x,x),
 
-#define indic_offset_0x2070u 2552
+#define indic_offset_0x2070u 1672
 
 
   /* Superscripts and Subscripts */
@@ -516,89 +361,17 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
   /* 2078 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
   /* 2080 */  _(x,x),  _(x,x), _(SM,x), _(SM,x), _(SM,x),  _(x,x),  _(x,x),  _(x,x),
 
-#define indic_offset_0xa800u 2576
-
-
-  /* Syloti Nagri */
-
-  /* A800 */ _(VI,x), _(VI,x),  _(x,x), _(VI,x), _(VI,x), _(VI,x), _(PK,T),  _(C,x),
-  /* A808 */  _(C,x),  _(C,x),  _(C,x), _(Bi,T),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A810 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A818 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A820 */  _(C,x),  _(C,x),  _(C,x),  _(M,R),  _(M,R),  _(M,B),  _(M,T),  _(M,R),
-  /* A828 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A830 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A838 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Phags-pa */
-
-  /* A840 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A848 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A850 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A858 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x), _(Vo,x), _(Vo,x),
-  /* A860 */ _(Vo,x), _(Vo,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x), _(Vo,x), _(CS,x),
-  /* A868 */ _(CS,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A870 */  _(C,x), _(CS,x),  _(C,x), _(Bi,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A878 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Saurashtra */
-
-  /* A880 */ _(Bi,R), _(Vs,R), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* A888 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* A890 */ _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A898 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A8A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A8A8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A8B0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x), _(CF,R),  _(M,R),  _(M,R),  _(M,R),
-  /* A8B8 */  _(M,R),  _(M,R),  _(M,R),  _(M,R),  _(M,R),  _(M,R),  _(M,R),  _(M,R),
-  /* A8C0 */  _(M,R),  _(M,R),  _(M,R),  _(M,R),  _(V,B),  _(x,x),  _(x,x),  _(x,x),
-  /* A8C8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A8D0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* A8D8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
+#define indic_offset_0xa8e0u 1696
+
 
   /* Devanagari Extended */
 
   /* A8E0 */ _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T),
   /* A8E8 */ _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T),
   /* A8F0 */ _(Ca,T), _(Ca,T),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A8F8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Kayah Li */
-
-  /* A900 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* A908 */ _(Nd,x), _(Nd,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A910 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A918 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A920 */  _(C,x),  _(C,x), _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x),
-  /* A928 */ _(Vo,x), _(Vo,x), _(Vo,x), _(TM,B), _(TM,B), _(TM,B),  _(x,x),  _(x,x),
-
-  /* Rejang */
-
-  /* A930 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A938 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A940 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(M,B),
-  /* A948 */  _(M,B),  _(M,B),  _(M,T),  _(M,B),  _(M,B),  _(M,B),  _(M,B), _(CF,T),
-  /* A950 */ _(CF,T), _(CF,T), _(CF,R), _(PK,R),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A958 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A960 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A968 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A970 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A978 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Javanese */
-
-  /* A980 */ _(Bi,T), _(Bi,T),_(CSR,T), _(Vs,R), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* A988 */ _(VI,x),  _(C,x),  _(C,x),  _(C,x), _(VI,x), _(VI,x), _(VI,x),  _(C,x),
-  /* A990 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A998 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A9A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A9A8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* A9B0 */  _(C,x),  _(C,x),  _(C,x),  _(N,T),  _(M,R),  _(M,R),  _(M,T),  _(M,T),
-  /* A9B8 */  _(M,B),  _(M,B),  _(M,L),  _(M,L),  _(M,T), _(CS,R), _(CM,R), _(CM,R),
-  /* A9C0 */ _(V,BR),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A9C8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* A9D0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* A9D8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
+
+#define indic_offset_0xa9e0u 1720
+
 
   /* Myanmar Extended-B */
 
@@ -607,301 +380,17 @@ static const INDIC_TABLE_ELEMENT_TYPE indic_table[] = {
   /* A9F0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
   /* A9F8 */ _(Nd,x), _(Nd,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),
 
-  /* Cham */
-
-  /* AA00 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),
-  /* AA08 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AA10 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AA18 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AA20 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AA28 */  _(C,x),  _(M,T),  _(M,T),  _(M,T),  _(M,T),  _(M,B),  _(M,T),  _(M,L),
-  /* AA30 */  _(M,L),  _(M,T),  _(M,B), _(CM,R), _(CM,L), _(CM,B), _(CM,B),  _(x,x),
-  /* AA38 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* AA40 */ _(CF,x), _(CF,x), _(CF,x), _(CF,T), _(CF,x), _(CF,x), _(CF,x), _(CF,x),
-  /* AA48 */ _(CF,x), _(CF,x), _(CF,x), _(CF,x), _(CF,T), _(CF,R),  _(x,x),  _(x,x),
-  /* AA50 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* AA58 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
+#define indic_offset_0xaa60u 1752
+
 
   /* Myanmar Extended-A */
 
   /* AA60 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
   /* AA68 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AA70 */  _(x,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
+  /* AA70 */  _(x,x),  _(C,x),  _(C,x),  _(C,x), _(CP,x), _(CP,x), _(CP,x),  _(x,x),
   /* AA78 */  _(x,x),  _(x,x),  _(C,x), _(TM,R), _(TM,T), _(TM,R),  _(C,x),  _(C,x),
 
-  /* Tai Viet */
-
-  /* AA80 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AA88 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AA90 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AA98 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AAA0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AAA8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AAB0 */  _(M,T),  _(M,R),  _(M,T),  _(M,T),  _(M,B),_(M,VOL),_(M,VOL),  _(M,T),
-  /* AAB8 */  _(M,T),_(M,VOL),  _(M,R),_(M,VOL),_(M,VOL),  _(M,R),  _(M,T), _(TM,T),
-  /* AAC0 */ _(TL,x), _(TM,T), _(TL,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* AAC8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* AAD0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* AAD8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Meetei Mayek Extensions */
-
-  /* AAE0 */ _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* AAE8 */  _(C,x),  _(C,x),  _(C,x),  _(M,L),  _(M,B),  _(M,T),  _(M,L),  _(M,R),
-  /* AAF0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x), _(Vs,R), _(IS,x),  _(x,x),
-
-#define indic_offset_0xabc0u 3336
-
-
-  /* Meetei Mayek */
-
-  /* ABC0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* ABC8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x), _(VI,x), _(VI,x),
-  /* ABD0 */  _(C,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* ABD8 */  _(C,x),  _(C,x),  _(C,x), _(CF,x), _(CF,x), _(CF,x), _(CF,x), _(CF,x),
-  /* ABE0 */ _(CF,x), _(CF,x), _(CF,x),  _(M,R),  _(M,R),  _(M,T),  _(M,R),  _(M,R),
-  /* ABE8 */  _(M,B),  _(M,R),  _(M,R),  _(x,x), _(TM,R), _(PK,B),  _(x,x),  _(x,x),
-  /* ABF0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* ABF8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-#define indic_offset_0x10a00u 3400
-
-
-  /* Kharoshthi */
-
-  /* 10A00 */  _(C,x),  _(M,O),  _(M,B),  _(M,B),  _(x,x),  _(M,T),  _(M,O),  _(x,x),
-  /* 10A08 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(M,B),  _(M,B), _(Bi,B), _(Vs,T),
-  /* 10A10 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 10A18 */  _(x,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 10A20 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 10A28 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 10A30 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 10A38 */  _(N,T),  _(N,B),  _(N,B),  _(x,x),  _(x,x),  _(x,x),  _(x,x), _(IS,x),
-  /* 10A40 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-
-#define indic_offset_0x11000u 3472
-
-
-  /* Brahmi */
-
-  /* 11000 */ _(Bi,R), _(Bi,T), _(Vs,R),_(CWS,x),_(CWS,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11008 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11010 */ _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11018 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11020 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11028 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11030 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11038 */  _(M,T),  _(M,T),  _(M,T),  _(M,T),  _(M,B),  _(M,B),  _(M,B),  _(M,B),
-  /* 11040 */  _(M,B),  _(M,B),  _(M,T),  _(M,T),  _(M,T),  _(M,T),  _(V,T),  _(x,x),
-  /* 11048 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11050 */  _(x,x),  _(x,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),
-  /* 11058 */_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),
-  /* 11060 */_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x),_(BJN,x), _(Nd,x), _(Nd,x),
-  /* 11068 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 11070 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11078 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x), _(NJ,x),
-
-  /* Kaithi */
-
-  /* 11080 */ _(Bi,T), _(Bi,T), _(Vs,R), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11088 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11090 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11098 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 110A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 110A8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 110B0 */  _(M,R),  _(M,L),  _(M,R),  _(M,B),  _(M,B),  _(M,T),  _(M,T),  _(M,R),
-  /* 110B8 */  _(M,R),  _(V,B),  _(N,B),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-#define indic_offset_0x11100u 3664
-
-
-  /* Chakma */
-
-  /* 11100 */ _(Bi,T), _(Bi,T), _(Vs,T), _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(C,x),
-  /* 11108 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11110 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11118 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11120 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(M,T),
-  /* 11128 */  _(M,T),  _(M,T),  _(M,B),  _(M,B),  _(M,L),  _(M,T), _(M,TB), _(M,TB),
-  /* 11130 */  _(M,T),  _(M,B),  _(M,B), _(IS,x), _(PK,T),  _(x,x), _(Nd,x), _(Nd,x),
-  /* 11138 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 11140 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11148 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Mahajani */
-
-  /* 11150 */ _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x), _(Vo,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11158 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11160 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11168 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11170 */  _(C,x),  _(C,x),  _(C,x),  _(N,B),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11178 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Sharada */
-
-  /* 11180 */ _(Bi,T), _(Bi,T), _(Vs,R), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11188 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11190 */ _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11198 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 111A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 111A8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 111B0 */  _(C,x),  _(C,x),  _(C,x),  _(M,R),  _(M,L),  _(M,R),  _(M,B),  _(M,B),
-  /* 111B8 */  _(M,B),  _(M,B),  _(M,B),  _(M,B),  _(M,T),  _(M,T),  _(M,T), _(M,TR),
-  /* 111C0 */  _(V,R),  _(A,x),_(CPrf,x),_(CPrf,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 111C8 */  _(x,x),  _(x,x),  _(N,x),  _(M,T),  _(M,B),  _(x,x),  _(x,x),  _(x,x),
-  /* 111D0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 111D8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Sinhala Archaic Numbers */
-
-  /* 111E0 */  _(x,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 111E8 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 111F0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 111F8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Khojki */
-
-  /* 11200 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11208 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11210 */  _(C,x),  _(C,x),  _(x,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11218 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11220 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11228 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(M,R),  _(M,R),  _(M,R),  _(M,B),
-  /* 11230 */  _(M,T),  _(M,T), _(M,TR), _(M,TR), _(Bi,T),  _(V,R),  _(N,T), _(GM,T),
-
-#define indic_offset_0x11280u 3976
-
-
-  /* Multani */
-
-  /* 11280 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),
-  /* 11288 */  _(C,x),  _(x,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(C,x),
-  /* 11290 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11298 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(x,x),  _(C,x),
-  /* 112A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 112A8 */  _(C,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Khudawadi */
-
-  /* 112B0 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 112B8 */ _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 112C0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 112C8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 112D0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 112D8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x), _(Bi,T),
-  /* 112E0 */  _(M,R),  _(M,L),  _(M,R),  _(M,B),  _(M,B),  _(M,T),  _(M,T),  _(M,T),
-  /* 112E8 */  _(M,T),  _(N,B), _(PK,B),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 112F0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 112F8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Grantha */
-
-  /* 11300 */ _(Bi,x), _(Bi,T), _(Bi,R), _(Vs,R),  _(x,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11308 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(x,x),  _(x,x), _(VI,x),
-  /* 11310 */ _(VI,x),  _(x,x),  _(x,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11318 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11320 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11328 */  _(C,x),  _(x,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11330 */  _(C,x),  _(x,x),  _(C,x),  _(C,x),  _(x,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11338 */  _(C,x),  _(C,x),  _(x,x),  _(x,x),  _(N,x),  _(A,x),  _(M,R),  _(M,R),
-  /* 11340 */  _(M,T),  _(M,R),  _(M,R),  _(M,R),  _(M,R),  _(x,x),  _(x,x),  _(M,L),
-  /* 11348 */  _(M,L),  _(x,x),  _(x,x), _(M,LR), _(M,LR),  _(V,R),  _(x,x),  _(x,x),
-  /* 11350 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(M,R),
-  /* 11358 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11360 */ _(VI,x), _(VI,x),  _(M,R),  _(M,R),  _(x,x),  _(x,x), _(Ca,T), _(Ca,T),
-  /* 11368 */ _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T),  _(x,x),  _(x,x),  _(x,x),
-  /* 11370 */ _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T), _(Ca,T),  _(x,x),  _(x,x),  _(x,x),
-
-#define indic_offset_0x11480u 4224
-
-
-  /* Tirhuta */
-
-  /* 11480 */  _(x,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11488 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(C,x),
-  /* 11490 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11498 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 114A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 114A8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 114B0 */  _(M,R),  _(M,L),  _(M,R),  _(M,B),  _(M,B),  _(M,B),  _(M,B),  _(M,B),
-  /* 114B8 */  _(M,B),  _(M,L),  _(M,T), _(M,TL), _(M,LR),  _(M,R), _(M,LR), _(Bi,T),
-  /* 114C0 */ _(Bi,T), _(Vs,R),  _(V,B),  _(N,B),  _(A,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 114C8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 114D0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 114D8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-#define indic_offset_0x11580u 4320
-
-
-  /* Siddham */
-
-  /* 11580 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11588 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),
-  /* 11590 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11598 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 115A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 115A8 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(M,R),
-  /* 115B0 */  _(M,L),  _(M,R),  _(M,B),  _(M,B),  _(M,B),  _(M,B),  _(x,x),  _(x,x),
-  /* 115B8 */  _(M,L), _(M,TL), _(M,LR),_(M,TLR), _(Bi,T), _(Bi,T), _(Vs,R),  _(V,B),
-  /* 115C0 */  _(N,B),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 115C8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 115D0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 115D8 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(M,B),  _(M,B),  _(x,x),  _(x,x),
-  /* 115E0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 115E8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 115F0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 115F8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Modi */
-
-  /* 11600 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11608 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),  _(C,x),  _(C,x),
-  /* 11610 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11618 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11620 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11628 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11630 */  _(M,R),  _(M,R),  _(M,R),  _(M,B),  _(M,B),  _(M,B),  _(M,B),  _(M,B),
-  /* 11638 */  _(M,B),  _(M,T),  _(M,T),  _(M,R),  _(M,R), _(Bi,T), _(Vs,R),  _(V,B),
-  /* 11640 */  _(M,T),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11648 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11650 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 11658 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11660 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11668 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11670 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11678 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Takri */
-
-  /* 11680 */ _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x), _(VI,x),
-  /* 11688 */ _(VI,x), _(VI,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11690 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11698 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 116A0 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 116A8 */  _(C,x),  _(C,x),  _(C,x), _(Bi,T), _(Vs,R),  _(M,T),  _(M,L),  _(M,R),
-  /* 116B0 */  _(M,B),  _(M,B),  _(M,T),  _(M,T),  _(M,T),  _(M,T),  _(V,R),  _(N,B),
-  /* 116B8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 116C0 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 116C8 */ _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 116D0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 116D8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 116E0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 116E8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 116F0 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 116F8 */  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-  /* Ahom */
-
-  /* 11700 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11708 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11710 */  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),  _(C,x),
-  /* 11718 */  _(C,x),  _(C,x),  _(x,x),  _(x,x),  _(x,x), _(CM,B), _(CM,x), _(CM,T),
-  /* 11720 */  _(M,R),  _(M,R),  _(M,T),  _(M,T),  _(M,B),  _(M,B),  _(M,L),  _(M,T),
-  /* 11728 */  _(M,B),  _(M,T),  _(M,T), _(PK,T),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-  /* 11730 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),
-  /* 11738 */ _(Nd,x), _(Nd,x), _(Nd,x), _(Nd,x),  _(x,x),  _(x,x),  _(x,x),  _(x,x),
-
-}; /* Table items: 4768; occupancy: 72% */
+}; /* Table items: 1784; occupancy: 69% */
 
 INDIC_TABLE_ELEMENT_TYPE
 hb_indic_get_categories (hb_codepoint_t u)
@@ -917,9 +406,7 @@ hb_indic_get_categories (hb_codepoint_t u)
 
     case 0x1u:
       if (hb_in_range (u, 0x1000u, 0x109Fu)) return indic_table[u - 0x1000u + indic_offset_0x1000u];
-      if (hb_in_range (u, 0x1700u, 0x17EFu)) return indic_table[u - 0x1700u + indic_offset_0x1700u];
-      if (hb_in_range (u, 0x1900u, 0x1A9Fu)) return indic_table[u - 0x1900u + indic_offset_0x1900u];
-      if (hb_in_range (u, 0x1B00u, 0x1C4Fu)) return indic_table[u - 0x1B00u + indic_offset_0x1b00u];
+      if (hb_in_range (u, 0x1780u, 0x17EFu)) return indic_table[u - 0x1780u + indic_offset_0x1780u];
       if (hb_in_range (u, 0x1CD0u, 0x1CFFu)) return indic_table[u - 0x1CD0u + indic_offset_0x1cd0u];
       break;
 
@@ -930,20 +417,9 @@ hb_indic_get_categories (hb_codepoint_t u)
       break;
 
     case 0xAu:
-      if (hb_in_range (u, 0xA800u, 0xAAF7u)) return indic_table[u - 0xA800u + indic_offset_0xa800u];
-      if (hb_in_range (u, 0xABC0u, 0xABFFu)) return indic_table[u - 0xABC0u + indic_offset_0xabc0u];
-      break;
-
-    case 0x10u:
-      if (hb_in_range (u, 0x10A00u, 0x10A47u)) return indic_table[u - 0x10A00u + indic_offset_0x10a00u];
-      break;
-
-    case 0x11u:
-      if (hb_in_range (u, 0x11000u, 0x110BFu)) return indic_table[u - 0x11000u + indic_offset_0x11000u];
-      if (hb_in_range (u, 0x11100u, 0x11237u)) return indic_table[u - 0x11100u + indic_offset_0x11100u];
-      if (hb_in_range (u, 0x11280u, 0x11377u)) return indic_table[u - 0x11280u + indic_offset_0x11280u];
-      if (hb_in_range (u, 0x11480u, 0x114DFu)) return indic_table[u - 0x11480u + indic_offset_0x11480u];
-      if (hb_in_range (u, 0x11580u, 0x1173Fu)) return indic_table[u - 0x11580u + indic_offset_0x11580u];
+      if (hb_in_range (u, 0xA8E0u, 0xA8F7u)) return indic_table[u - 0xA8E0u + indic_offset_0xa8e0u];
+      if (hb_in_range (u, 0xA9E0u, 0xA9FFu)) return indic_table[u - 0xA9E0u + indic_offset_0xa9e0u];
+      if (hb_in_range (u, 0xAA60u, 0xAA7Fu)) return indic_table[u - 0xAA60u + indic_offset_0xaa60u];
       break;
 
     default:
index 1e151a7..94556f6 100644 (file)
@@ -200,18 +200,10 @@ set_indic_properties (hb_glyph_info_t &info)
     cat = OT_Symbol;
     ASSERT_STATIC ((int) INDIC_SYLLABIC_CATEGORY_AVAGRAHA == OT_Symbol);
   }
-  else if (unlikely (u == 0x17DDu)) /* https://github.com/roozbehp/unicode-data/issues/2 */
-  {
-    cat = OT_M;
-    pos = POS_ABOVE_C;
-  }
   else if (unlikely (u == 0x17C6u)) cat = OT_N; /* Khmer Bindu doesn't like to be repositioned. */
   else if (unlikely (hb_in_range (u, 0x2010u, 0x2011u)))
                                    cat = OT_PLACEHOLDER;
   else if (unlikely (u == 0x25CCu)) cat = OT_DOTTEDCIRCLE;
-  else if (unlikely (u == 0xA982u)) cat = OT_SM; /* Javanese repha. */
-  else if (unlikely (u == 0xA9BEu)) cat = OT_CM2; /* Javanese medial ya. */
-  else if (unlikely (u == 0xA9BDu)) { cat = OT_M; pos = POS_POST_C; } /* Javanese vocalic r. */
 
 
   /*
@@ -277,11 +269,6 @@ enum blwf_mode_t {
   BLWF_MODE_PRE_AND_POST, /* Below-forms feature applied to pre-base and post-base. */
   BLWF_MODE_POST_ONLY     /* Below-forms feature applied to post-base only. */
 };
-enum pref_len_t {
-  PREF_LEN_1 = 1,
-  PREF_LEN_2 = 2,
-  PREF_LEN_DONT_CARE = PREF_LEN_2
-};
 struct indic_config_t
 {
   hb_script_t     script;
@@ -291,26 +278,24 @@ struct indic_config_t
   reph_position_t reph_pos;
   reph_mode_t     reph_mode;
   blwf_mode_t     blwf_mode;
-  pref_len_t      pref_len;
 };
 
 static const indic_config_t indic_configs[] =
 {
   /* Default.  Should be first. */
-  {HB_SCRIPT_INVALID,  false,      0,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_1},
-  {HB_SCRIPT_DEVANAGARI,true, 0x094Du,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
-  {HB_SCRIPT_BENGALI,  true, 0x09CDu,BASE_POS_LAST, REPH_POS_AFTER_SUB,  REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
-  {HB_SCRIPT_GURMUKHI, true, 0x0A4Du,BASE_POS_LAST, REPH_POS_BEFORE_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
-  {HB_SCRIPT_GUJARATI, true, 0x0ACDu,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
-  {HB_SCRIPT_ORIYA,    true, 0x0B4Du,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
-  {HB_SCRIPT_TAMIL,    true, 0x0BCDu,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
-  {HB_SCRIPT_TELUGU,   true, 0x0C4Du,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_EXPLICIT, BLWF_MODE_POST_ONLY,    PREF_LEN_2},
-  {HB_SCRIPT_KANNADA,  true, 0x0CCDu,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_POST_ONLY,    PREF_LEN_2},
-  {HB_SCRIPT_MALAYALAM,        true, 0x0D4Du,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_LOG_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
+  {HB_SCRIPT_INVALID,  false,      0,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST},
+  {HB_SCRIPT_DEVANAGARI,true, 0x094Du,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST},
+  {HB_SCRIPT_BENGALI,  true, 0x09CDu,BASE_POS_LAST, REPH_POS_AFTER_SUB,  REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST},
+  {HB_SCRIPT_GURMUKHI, true, 0x0A4Du,BASE_POS_LAST, REPH_POS_BEFORE_SUB, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST},
+  {HB_SCRIPT_GUJARATI, true, 0x0ACDu,BASE_POS_LAST, REPH_POS_BEFORE_POST,REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST},
+  {HB_SCRIPT_ORIYA,    true, 0x0B4Du,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST},
+  {HB_SCRIPT_TAMIL,    true, 0x0BCDu,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_PRE_AND_POST},
+  {HB_SCRIPT_TELUGU,   true, 0x0C4Du,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_EXPLICIT, BLWF_MODE_POST_ONLY},
+  {HB_SCRIPT_KANNADA,  true, 0x0CCDu,BASE_POS_LAST, REPH_POS_AFTER_POST, REPH_MODE_IMPLICIT, BLWF_MODE_POST_ONLY},
+  {HB_SCRIPT_MALAYALAM,        true, 0x0D4Du,BASE_POS_LAST, REPH_POS_AFTER_MAIN, REPH_MODE_LOG_REPHA,BLWF_MODE_PRE_AND_POST},
   {HB_SCRIPT_SINHALA,  false,0x0DCAu,BASE_POS_LAST_SINHALA,
-                                                    REPH_POS_AFTER_MAIN, REPH_MODE_EXPLICIT, BLWF_MODE_PRE_AND_POST, PREF_LEN_DONT_CARE},
-  {HB_SCRIPT_KHMER,    false,0x17D2u,BASE_POS_FIRST,REPH_POS_DONT_CARE,  REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_2},
-  {HB_SCRIPT_JAVANESE, false,0xA9C0u,BASE_POS_FIRST,REPH_POS_DONT_CARE,  REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST, PREF_LEN_1},
+                                                    REPH_POS_AFTER_MAIN, REPH_MODE_EXPLICIT, BLWF_MODE_PRE_AND_POST},
+  {HB_SCRIPT_KHMER,    false,0x17D2u,BASE_POS_FIRST,REPH_POS_DONT_CARE,  REPH_MODE_VIS_REPHA,BLWF_MODE_PRE_AND_POST},
 };
 
 
@@ -588,12 +573,8 @@ consonant_position_from_face (const indic_shape_plan_t *indic_plan,
   if (indic_plan->pstf.would_substitute (glyphs  , 2, face) ||
       indic_plan->pstf.would_substitute (glyphs+1, 2, face))
     return POS_POST_C;
-  unsigned int pref_len = indic_plan->config->pref_len;
-  if ((pref_len == PREF_LEN_2 &&
-       (indic_plan->pref.would_substitute (glyphs  , 2, face) ||
-        indic_plan->pref.would_substitute (glyphs+1, 2, face)))
-   || (pref_len == PREF_LEN_1 &&
-       indic_plan->pref.would_substitute (glyphs+1, 1, face)))
+  if (indic_plan->pref.would_substitute (glyphs  , 2, face) ||
+      indic_plan->pref.would_substitute (glyphs+1, 2, face))
     return POS_POST_C;
   return POS_BASE_C;
 }
@@ -1099,10 +1080,9 @@ initial_reordering_consonant_syllable (const hb_ot_shape_plan_t *plan,
       }
   }
 
-  unsigned int pref_len = indic_plan->config->pref_len;
+  unsigned int pref_len = 2;
   if (indic_plan->mask_array[PREF] && base + pref_len < end)
   {
-    assert (1 <= pref_len && pref_len <= 2);
     /* Find a Halant,Ra sequence and mark it for pre-base reordering processing. */
     for (unsigned int i = base + 1; i + pref_len - 1 < end; i++) {
       hb_codepoint_t glyphs[2];
@@ -1312,7 +1292,7 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan,
   for (base = start; base < end; base++)
     if (info[base].indic_position() >= POS_BASE_C)
     {
-      if (try_pref && base + 1 < end && indic_plan->config->pref_len == 2)
+      if (try_pref && base + 1 < end)
       {
        for (unsigned int i = base + 1; i < end; i++)
          if ((info[i].mask & indic_plan->mask_array[PREF]) != 0)
@@ -1594,7 +1574,6 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan,
 
   if (try_pref && base + 1 < end) /* Otherwise there can't be any pre-base reordering Ra. */
   {
-    unsigned int pref_len = indic_plan->config->pref_len;
     for (unsigned int i = base + 1; i < end; i++)
       if ((info[i].mask & indic_plan->mask_array[PREF]) != 0)
       {
@@ -1605,10 +1584,8 @@ final_reordering_syllable (const hb_ot_shape_plan_t *plan,
         /* Note: We just check that something got substituted.  We don't check that
         * the <pref> feature actually did it...
         *
-        * If pref len is longer than one, then only reorder if it ligated.  If
-        * pref len is one, only reorder if it didn't ligate with other things. */
-       if (_hb_glyph_info_substituted (&info[i]) &&
-           ((pref_len == 1) ^ _hb_glyph_info_ligated_and_didnt_multiply (&info[i])))
+        * Reorder pref only if it ligated. */
+       if (_hb_glyph_info_ligated_and_didnt_multiply (&info[i]))
        {
          /*
           *       2. Try to find a target position the same way as for pre-base matra.
index 29fdf9a..d2fe742 100644 (file)
@@ -1,5 +1,5 @@
 
-#line 1 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 1 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
 /*
  * Copyright © 2011,2012  Google, Inc.
  *
@@ -32,7 +32,7 @@
 #include "hb-private.hh"
 
 
-#line 36 "hb-ot-shape-complex-myanmar-machine.hh"
+#line 36 "../../src/hb-ot-shape-complex-myanmar-machine.hh.tmp"
 static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
        1u, 31u, 3u, 30u, 5u, 29u, 5u, 8u, 5u, 29u, 3u, 25u, 5u, 25u, 5u, 25u, 
        3u, 29u, 3u, 29u, 3u, 29u, 3u, 29u, 1u, 16u, 3u, 29u, 3u, 29u, 3u, 29u, 
@@ -261,11 +261,11 @@ static const int myanmar_syllable_machine_error = -1;
 static const int myanmar_syllable_machine_en_main = 0;
 
 
-#line 36 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 36 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
 
 
 
-#line 93 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 93 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
 
 
 #define found_syllable(syllable_type) \
@@ -285,7 +285,7 @@ find_syllables (hb_buffer_t *buffer)
   int cs;
   hb_glyph_info_t *info = buffer->info;
   
-#line 289 "hb-ot-shape-complex-myanmar-machine.hh"
+#line 289 "../../src/hb-ot-shape-complex-myanmar-machine.hh.tmp"
        {
        cs = myanmar_syllable_machine_start;
        ts = 0;
@@ -293,7 +293,7 @@ find_syllables (hb_buffer_t *buffer)
        act = 0;
        }
 
-#line 114 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 114 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
 
 
   p = 0;
@@ -302,7 +302,7 @@ find_syllables (hb_buffer_t *buffer)
   unsigned int last = 0;
   unsigned int syllable_serial = 1;
   
-#line 306 "hb-ot-shape-complex-myanmar-machine.hh"
+#line 306 "../../src/hb-ot-shape-complex-myanmar-machine.hh.tmp"
        {
        int _slen;
        int _trans;
@@ -316,7 +316,7 @@ _resume:
 #line 1 "NONE"
        {ts = p;}
        break;
-#line 320 "hb-ot-shape-complex-myanmar-machine.hh"
+#line 320 "../../src/hb-ot-shape-complex-myanmar-machine.hh.tmp"
        }
 
        _keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
@@ -335,38 +335,38 @@ _eof_trans:
 
        switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
        case 7:
-#line 85 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 85 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
        {te = p+1;{ found_syllable (consonant_syllable); }}
        break;
        case 5:
-#line 86 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 86 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
        {te = p+1;{ found_syllable (non_myanmar_cluster); }}
        break;
        case 10:
-#line 87 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 87 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
        {te = p+1;{ found_syllable (punctuation_cluster); }}
        break;
        case 4:
-#line 88 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 88 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
        {te = p+1;{ found_syllable (broken_cluster); }}
        break;
        case 3:
-#line 89 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 89 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
        {te = p+1;{ found_syllable (non_myanmar_cluster); }}
        break;
        case 6:
-#line 85 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 85 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
        {te = p;p--;{ found_syllable (consonant_syllable); }}
        break;
        case 8:
-#line 88 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 88 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
        {te = p;p--;{ found_syllable (broken_cluster); }}
        break;
        case 9:
-#line 89 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 89 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
        {te = p;p--;{ found_syllable (non_myanmar_cluster); }}
        break;
-#line 370 "hb-ot-shape-complex-myanmar-machine.hh"
+#line 370 "../../src/hb-ot-shape-complex-myanmar-machine.hh.tmp"
        }
 
 _again:
@@ -375,7 +375,7 @@ _again:
 #line 1 "NONE"
        {ts = 0;}
        break;
-#line 379 "hb-ot-shape-complex-myanmar-machine.hh"
+#line 379 "../../src/hb-ot-shape-complex-myanmar-machine.hh.tmp"
        }
 
        if ( ++p != pe )
@@ -391,7 +391,7 @@ _again:
 
        }
 
-#line 123 "hb-ot-shape-complex-myanmar-machine.rl"
+#line 123 "../../src/hb-ot-shape-complex-myanmar-machine.rl"
 
 }
 
index 545765d..577d790 100644 (file)
@@ -249,6 +249,11 @@ set_myanmar_properties (hb_glyph_info_t &info)
     case 0x104Au: case 0x104Bu:
       cat = (indic_category_t) OT_P;
       break;
+
+    case 0xAA74u: case 0xAA75u: case 0xAA76u:
+      /* https://github.com/roozbehp/unicode-data/issues/3 */
+      cat = (indic_category_t) OT_C;
+      break;
   }
 
   if (cat == OT_M)
index b3372bd..fb0c704 100644 (file)
@@ -241,9 +241,6 @@ hb_ot_shape_complex_categorize (const hb_ot_shape_planner_t *planner)
     /* Unicode-3.0 additions */
     case HB_SCRIPT_SINHALA:
 
-    /* Unicode-5.2 additions */
-    case HB_SCRIPT_JAVANESE:
-
       /* If the designer designed the font for the 'DFLT' script,
        * use the default shaper.  Otherwise, use the specific shaper.
        * Note that for some simple scripts, there may not be *any*
@@ -316,7 +313,7 @@ hb_ot_shape_complex_categorize (const hb_ot_shape_planner_t *planner)
 
     /* Unicode-5.2 additions */
     case HB_SCRIPT_EGYPTIAN_HIEROGLYPHS:
-    //case HB_SCRIPT_JAVANESE:
+    case HB_SCRIPT_JAVANESE:
     case HB_SCRIPT_KAITHI:
     case HB_SCRIPT_MEETEI_MAYEK:
     case HB_SCRIPT_TAI_THAM:
@@ -345,6 +342,15 @@ hb_ot_shape_complex_categorize (const hb_ot_shape_planner_t *planner)
     case HB_SCRIPT_SIDDHAM:
     case HB_SCRIPT_TIRHUTA:
 
+    /* Unicode-8.0 additions */
+    case HB_SCRIPT_AHOM:
+    //case HB_SCRIPT_MULTANI:
+
+    /* Unicode-9.0 additions */
+    case HB_SCRIPT_BHAIKSUKI:
+    case HB_SCRIPT_MARCHEN:
+    case HB_SCRIPT_NEWA:
+
       /* If the designer designed the font for the 'DFLT' script,
        * use the default shaper.  Otherwise, use the specific shaper.
        * Note that for some simple scripts, there may not be *any*
index ced9d97..44e5d0d 100644 (file)
 
 #line 38 "hb-ot-shape-complex-use-machine.hh"
 static const unsigned char _use_syllable_machine_trans_keys[] = {
-       0u, 0u, 4u, 4u, 1u, 1u, 0u, 39u, 21u, 21u, 8u, 39u, 8u, 39u, 1u, 1u, 
-       8u, 39u, 8u, 39u, 8u, 39u, 8u, 26u, 8u, 26u, 8u, 26u, 8u, 39u, 8u, 39u, 
-       8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 
-       8u, 39u, 8u, 39u, 8u, 39u, 1u, 1u, 8u, 39u, 8u, 39u, 8u, 26u, 8u, 26u, 
+       1u, 1u, 0u, 39u, 21u, 21u, 8u, 39u, 8u, 39u, 1u, 1u, 8u, 39u, 8u, 39u, 
+       8u, 39u, 8u, 26u, 8u, 26u, 8u, 26u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 
+       8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 13u, 21u, 
+       4u, 4u, 13u, 13u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 26u, 8u, 26u, 
        8u, 26u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 
-       8u, 39u, 12u, 21u, 12u, 13u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 26u, 
-       8u, 26u, 8u, 26u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 
-       8u, 39u, 8u, 39u, 8u, 39u, 8u, 39u, 1u, 39u, 8u, 39u, 21u, 42u, 41u, 42u, 
+       8u, 39u, 8u, 39u, 8u, 39u, 1u, 1u, 1u, 39u, 8u, 39u, 21u, 42u, 41u, 42u, 
        42u, 42u, 0
 };
 
 static const char _use_syllable_machine_key_spans[] = {
-       0, 1, 1, 40, 1, 32, 32, 1
-       32, 32, 32, 19, 19, 19, 32, 32, 
-       32, 32, 32, 32, 32, 32, 32, 32
-       32, 32, 32, 1, 32, 32, 19, 19, 
+       1, 40, 1, 32, 32, 1, 32, 32
+       32, 19, 19, 19, 32, 32, 32, 32, 
+       32, 32, 32, 32, 32, 32, 32, 9
+       1, 1, 32, 32, 32, 32, 19, 19, 
        19, 32, 32, 32, 32, 32, 32, 32, 
-       32, 10, 2, 32, 32, 32, 32, 19, 
-       19, 19, 32, 32, 32, 32, 32, 32, 
-       32, 32, 32, 32, 39, 32, 22, 2, 
+       32, 32, 32, 1, 39, 32, 22, 2, 
        1
 };
 
 static const short _use_syllable_machine_index_offsets[] = {
-       0, 0, 2, 4, 45, 47, 80, 113, 
-       115, 148, 181, 214, 234, 254, 274, 307, 
-       340, 373, 406, 439, 472, 505, 538, 571, 
-       604, 637, 670, 703, 705, 738, 771, 791, 
-       811, 831, 864, 897, 930, 963, 996, 1029, 
-       1062, 1095, 1106, 1109, 1142, 1175, 1208, 1241, 
-       1261, 1281, 1301, 1334, 1367, 1400, 1433, 1466, 
-       1499, 1532, 1565, 1598, 1631, 1671, 1704, 1727, 
-       1730
+       0, 2, 43, 45, 78, 111, 113, 146, 
+       179, 212, 232, 252, 272, 305, 338, 371, 
+       404, 437, 470, 503, 536, 569, 602, 635, 
+       645, 647, 649, 682, 715, 748, 781, 801, 
+       821, 841, 874, 907, 940, 973, 1006, 1039, 
+       1072, 1105, 1138, 1171, 1173, 1213, 1246, 1269, 
+       1272
 };
 
 static const char _use_syllable_machine_indicies[] = {
-       1, 0, 3, 2, 4, 5, 6, 
-       4, 1, 5, 8, 8, 7, 8, 8, 
-       3, 9, 8, 8, 8, 4, 4, 10, 
-       11, 8, 8, 12, 13, 14, 15, 16, 
-       17, 18, 12, 19, 20, 21, 22, 23, 
-       24, 8, 25, 26, 27, 8, 29, 28, 
-       31, 30, 30, 32, 33, 30, 30, 30, 
-       30, 30, 30, 30, 30, 34, 35, 36, 
-       37, 38, 39, 40, 41, 35, 42, 34, 
-       43, 44, 45, 46, 30, 47, 48, 49, 
-       30, 31, 30, 30, 32, 33, 30, 30, 
-       30, 30, 30, 30, 30, 30, 50, 35, 
-       36, 37, 38, 39, 40, 41, 35, 42, 
-       43, 43, 44, 45, 46, 30, 47, 48, 
-       49, 30, 32, 51, 31, 30, 30, 32, 
-       33, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 35, 36, 37, 38, 39, 40, 
-       41, 35, 42, 43, 43, 44, 45, 46, 
-       30, 47, 48, 49, 30, 31, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 35, 36, 37, 38, 39, 
-       30, 30, 30, 30, 30, 30, 44, 45, 
-       46, 30, 47, 48, 49, 30, 31, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 36, 37, 38, 
-       39, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 47, 48, 49, 30, 31, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 37, 
-       38, 39, 30, 31, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 38, 39, 30, 31, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 39, 30, 31, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 37, 38, 39, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       47, 48, 49, 30, 31, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 37, 38, 39, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 48, 49, 30, 31, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 37, 38, 39, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 49, 30, 31, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 36, 37, 38, 
-       39, 30, 30, 30, 30, 30, 30, 44, 
-       45, 46, 30, 47, 48, 49, 30, 31, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 36, 37, 
-       38, 39, 30, 30, 30, 30, 30, 30, 
-       30, 45, 46, 30, 47, 48, 49, 30, 
-       31, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 36, 
-       37, 38, 39, 30, 30, 30, 30, 30, 
-       30, 30, 30, 46, 30, 47, 48, 49, 
-       30, 31, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 35, 
-       36, 37, 38, 39, 30, 41, 35, 30, 
-       30, 30, 44, 45, 46, 30, 47, 48, 
-       49, 30, 31, 30, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       35, 36, 37, 38, 39, 30, 30, 35, 
-       30, 30, 30, 44, 45, 46, 30, 47, 
-       48, 49, 30, 31, 30, 30, 30, 30, 
-       30, 30, 30, 30, 30, 30, 30, 30, 
-       30, 35, 36, 37, 38, 39, 40, 41, 
-       35, 30, 30, 30, 44, 45, 46, 30, 
-       47, 48, 49, 30, 31, 30, 30, 32, 
-       33, 30, 30, 30, 30, 30, 30, 30, 
-       30, 30, 35, 36, 37, 38, 39, 40, 
-       41, 35, 42, 30, 43, 44, 45, 46, 
-       30, 47, 48, 49, 30, 31, 30, 30, 
-       32, 33, 30, 30, 30, 30, 30, 30, 
-       30, 30, 30, 35, 36, 37, 38, 39, 
-       40, 41, 35, 42, 34, 43, 44, 45, 
-       46, 30, 47, 48, 49, 30, 53, 52, 
-       52, 54, 55, 52, 52, 52, 52, 52, 
-       52, 52, 52, 56, 52, 57, 58, 59, 
-       60, 61, 62, 57, 63, 56, 64, 52, 
-       52, 52, 52, 65, 66, 67, 52, 53, 
-       52, 52, 54, 55, 52, 52, 52, 52, 
-       52, 52, 52, 52, 68, 52, 57, 58, 
-       59, 60, 61, 62, 57, 63, 64, 64, 
-       52, 52, 52, 52, 65, 66, 67, 52, 
-       54, 51, 53, 52, 52, 54, 55, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 57, 58, 59, 60, 61, 62, 57, 
-       63, 64, 64, 52, 52, 52, 52, 65, 
-       66, 67, 52, 53, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 57, 58, 59, 60, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       65, 66, 67, 52, 53, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 58, 59, 60, 52, 
-       53, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 59, 60, 52, 53, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 60, 52, 
-       53, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       58, 59, 60, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 65, 66, 67, 
-       52, 53, 52, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 58, 59, 60, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 66, 
-       67, 52, 53, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 58, 59, 60, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 67, 52, 53, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 57, 58, 59, 60, 52, 62, 
-       57, 52, 52, 52, 52, 52, 52, 52, 
-       65, 66, 67, 52, 53, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 52, 57, 58, 59, 60, 52, 
-       52, 57, 52, 52, 52, 52, 52, 52, 
-       52, 65, 66, 67, 52, 53, 52, 52, 
-       52, 52, 52, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 57, 58, 59, 60, 
-       61, 62, 57, 52, 52, 52, 52, 52, 
-       52, 52, 65, 66, 67, 52, 53, 52, 
-       52, 54, 55, 52, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 57, 58, 59, 
-       60, 61, 62, 57, 63, 52, 64, 52, 
-       52, 52, 52, 65, 66, 67, 52, 53, 
-       52, 52, 54, 55, 52, 52, 52, 52, 
-       52, 52, 52, 52, 52, 52, 57, 58, 
-       59, 60, 61, 62, 57, 63, 56, 64, 
-       52, 52, 52, 52, 65, 66, 67, 52, 
-       70, 71, 69, 69, 69, 69, 69, 69, 
-       69, 72, 69, 70, 71, 69, 7, 73, 
-       73, 3, 9, 73, 73, 73, 73, 73, 
-       73, 73, 73, 74, 12, 13, 14, 15, 
-       16, 17, 18, 12, 19, 21, 21, 22, 
-       23, 24, 73, 25, 26, 27, 73, 7, 
-       73, 73, 3, 9, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 12, 13, 14, 
-       15, 16, 17, 18, 12, 19, 21, 21, 
-       22, 23, 24, 73, 25, 26, 27, 73, 
-       7, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 12, 13, 
-       14, 15, 16, 73, 73, 73, 73, 73, 
-       73, 22, 23, 24, 73, 25, 26, 27, 
-       73, 7, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       13, 14, 15, 16, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 25, 26, 
-       27, 73, 7, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 14, 15, 16, 73, 7, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 15, 
-       16, 73, 7, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 16, 73, 7, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 14, 15, 
-       16, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 25, 26, 27, 73, 7, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 14, 
-       15, 16, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 26, 27, 73, 
-       7, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       14, 15, 16, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 27, 
-       73, 7, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       13, 14, 15, 16, 73, 73, 73, 73, 
-       73, 73, 22, 23, 24, 73, 25, 26, 
-       27, 73, 7, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 13, 14, 15, 16, 73, 73, 73, 
-       73, 73, 73, 73, 23, 24, 73, 25, 
-       26, 27, 73, 7, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 13, 14, 15, 16, 73, 73, 
-       73, 73, 73, 73, 73, 73, 24, 73, 
-       25, 26, 27, 73, 7, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 12, 13, 14, 15, 16, 73, 
-       18, 12, 73, 73, 73, 22, 23, 24, 
-       73, 25, 26, 27, 73, 7, 73, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 12, 13, 14, 15, 16, 
-       73, 73, 12, 73, 73, 73, 22, 23, 
-       24, 73, 25, 26, 27, 73, 7, 73, 
-       73, 73, 73, 73, 73, 73, 73, 73, 
-       73, 73, 73, 73, 12, 13, 14, 15, 
-       16, 17, 18, 12, 73, 73, 73, 22, 
-       23, 24, 73, 25, 26, 27, 73, 7, 
-       73, 73, 3, 9, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 12, 13, 14, 
-       15, 16, 17, 18, 12, 19, 73, 21, 
-       22, 23, 24, 73, 25, 26, 27, 73, 
-       5, 6, 73, 73, 5, 73, 73, 7, 
-       73, 73, 3, 9, 73, 73, 73, 73, 
-       73, 73, 73, 73, 73, 12, 13, 14, 
-       15, 16, 17, 18, 12, 19, 20, 21, 
-       22, 23, 24, 73, 25, 26, 27, 73, 
-       7, 73, 73, 3, 9, 73, 73, 73, 
-       73, 73, 73, 73, 73, 73, 12, 13, 
-       14, 15, 16, 17, 18, 12, 19, 20, 
-       21, 22, 23, 24, 73, 25, 26, 27, 
-       73, 76, 75, 75, 75, 75, 75, 75, 
-       75, 75, 75, 75, 75, 75, 75, 75, 
-       75, 75, 75, 75, 75, 76, 77, 75, 
-       76, 77, 75, 77, 75, 0
+       1, 0, 2, 3, 4, 2, 5, 3, 
+       4, 4, 6, 4, 4, 1, 7, 4, 
+       4, 4, 2, 2, 8, 9, 4, 4, 
+       10, 11, 12, 13, 14, 15, 16, 10, 
+       17, 18, 19, 20, 21, 22, 4, 23, 
+       24, 25, 4, 27, 26, 29, 28, 28, 
+       30, 31, 28, 28, 28, 28, 28, 28, 
+       28, 28, 32, 33, 34, 35, 36, 37, 
+       38, 39, 33, 40, 32, 41, 42, 43, 
+       44, 28, 45, 46, 47, 28, 29, 28, 
+       28, 30, 31, 28, 28, 28, 28, 28, 
+       28, 28, 28, 48, 33, 34, 35, 36, 
+       37, 38, 39, 33, 40, 41, 41, 42, 
+       43, 44, 28, 45, 46, 47, 28, 30, 
+       49, 29, 28, 28, 30, 31, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 33, 
+       34, 35, 36, 37, 38, 39, 33, 40, 
+       41, 41, 42, 43, 44, 28, 45, 46, 
+       47, 28, 29, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       33, 34, 35, 36, 37, 28, 28, 28, 
+       28, 28, 28, 42, 43, 44, 28, 45, 
+       46, 47, 28, 29, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 34, 35, 36, 37, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       45, 46, 47, 28, 29, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 35, 36, 37, 28, 
+       29, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 36, 37, 28, 29, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 37, 28, 
+       29, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       35, 36, 37, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 45, 46, 47, 
+       28, 29, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 35, 36, 37, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 46, 
+       47, 28, 29, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 35, 36, 37, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 47, 28, 29, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 34, 35, 36, 37, 28, 28, 
+       28, 28, 28, 28, 42, 43, 44, 28, 
+       45, 46, 47, 28, 29, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 34, 35, 36, 37, 28, 
+       28, 28, 28, 28, 28, 28, 43, 44, 
+       28, 45, 46, 47, 28, 29, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 34, 35, 36, 37, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       44, 28, 45, 46, 47, 28, 29, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 33, 34, 35, 36, 
+       37, 28, 39, 33, 28, 28, 28, 42, 
+       43, 44, 28, 45, 46, 47, 28, 29, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 33, 34, 35, 
+       36, 37, 28, 28, 33, 28, 28, 28, 
+       42, 43, 44, 28, 45, 46, 47, 28, 
+       29, 28, 28, 28, 28, 28, 28, 28, 
+       28, 28, 28, 28, 28, 28, 33, 34, 
+       35, 36, 37, 38, 39, 33, 28, 28, 
+       28, 42, 43, 44, 28, 45, 46, 47, 
+       28, 29, 28, 28, 30, 31, 28, 28, 
+       28, 28, 28, 28, 28, 28, 28, 33, 
+       34, 35, 36, 37, 38, 39, 33, 40, 
+       28, 41, 42, 43, 44, 28, 45, 46, 
+       47, 28, 29, 28, 28, 30, 31, 28, 
+       28, 28, 28, 28, 28, 28, 28, 28, 
+       33, 34, 35, 36, 37, 38, 39, 33, 
+       40, 32, 41, 42, 43, 44, 28, 45, 
+       46, 47, 28, 51, 50, 50, 50, 50, 
+       50, 50, 50, 52, 50, 5, 53, 51, 
+       50, 6, 54, 54, 1, 55, 54, 54, 
+       54, 54, 54, 54, 54, 54, 56, 10, 
+       11, 12, 13, 14, 15, 16, 10, 17, 
+       19, 19, 20, 21, 22, 54, 23, 24, 
+       25, 54, 6, 54, 54, 1, 55, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       10, 11, 12, 13, 14, 15, 16, 10, 
+       17, 19, 19, 20, 21, 22, 54, 23, 
+       24, 25, 54, 6, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 10, 11, 12, 13, 14, 54, 54, 
+       54, 54, 54, 54, 20, 21, 22, 54, 
+       23, 24, 25, 54, 6, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 11, 12, 13, 14, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 23, 24, 25, 54, 6, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 12, 13, 14, 
+       54, 6, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 13, 14, 54, 6, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 14, 
+       54, 6, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 12, 13, 14, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 23, 24, 
+       25, 54, 6, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 12, 13, 14, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       24, 25, 54, 6, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 12, 13, 14, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 25, 54, 6, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 11, 12, 13, 14, 54, 
+       54, 54, 54, 54, 54, 20, 21, 22, 
+       54, 23, 24, 25, 54, 6, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 11, 12, 13, 14, 
+       54, 54, 54, 54, 54, 54, 54, 21, 
+       22, 54, 23, 24, 25, 54, 6, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 11, 12, 13, 
+       14, 54, 54, 54, 54, 54, 54, 54, 
+       54, 22, 54, 23, 24, 25, 54, 6, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 10, 11, 12, 
+       13, 14, 54, 16, 10, 54, 54, 54, 
+       20, 21, 22, 54, 23, 24, 25, 54, 
+       6, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 10, 11, 
+       12, 13, 14, 54, 54, 10, 54, 54, 
+       54, 20, 21, 22, 54, 23, 24, 25, 
+       54, 6, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 54, 54, 54, 54, 10, 
+       11, 12, 13, 14, 15, 16, 10, 54, 
+       54, 54, 20, 21, 22, 54, 23, 24, 
+       25, 54, 6, 54, 54, 1, 55, 54, 
+       54, 54, 54, 54, 54, 54, 54, 54, 
+       10, 11, 12, 13, 14, 15, 16, 10, 
+       17, 54, 19, 20, 21, 22, 54, 23, 
+       24, 25, 54, 1, 57, 3, 54, 54, 
+       54, 3, 54, 54, 6, 54, 54, 1, 
+       55, 54, 54, 54, 54, 54, 54, 54, 
+       54, 54, 10, 11, 12, 13, 14, 15, 
+       16, 10, 17, 18, 19, 20, 21, 22, 
+       54, 23, 24, 25, 54, 6, 54, 54, 
+       1, 55, 54, 54, 54, 54, 54, 54, 
+       54, 54, 54, 10, 11, 12, 13, 14, 
+       15, 16, 10, 17, 18, 19, 20, 21, 
+       22, 54, 23, 24, 25, 54, 59, 58, 
+       58, 58, 58, 58, 58, 58, 58, 58, 
+       58, 58, 58, 58, 58, 58, 58, 58, 
+       58, 58, 59, 60, 58, 59, 60, 58, 
+       60, 58, 0
 };
 
 static const char _use_syllable_machine_trans_targs[] = {
-       3, 41, 3, 43, 4, 5, 25, 3, 
-       0, 2, 60, 62, 45, 46, 47, 48, 
-       49, 56, 57, 58, 61, 59, 53, 54, 
-       55, 50, 51, 52, 3, 3, 3, 3, 
-       6, 7, 24, 9, 10, 11, 12, 13, 
-       20, 21, 22, 23, 17, 18, 19, 14, 
-       15, 16, 8, 3, 3, 3, 26, 27, 
-       40, 29, 30, 31, 32, 36, 37, 38, 
-       39, 33, 34, 35, 28, 3, 3, 1, 
-       42, 3, 44, 3, 63, 64
+       1, 26, 2, 3, 1, 23, 1, 43, 
+       44, 46, 28, 29, 30, 31, 32, 39, 
+       40, 41, 45, 42, 36, 37, 38, 33, 
+       34, 35, 1, 1, 1, 1, 4, 5, 
+       22, 7, 8, 9, 10, 11, 18, 19, 
+       20, 21, 15, 16, 17, 12, 13, 14, 
+       6, 1, 1, 24, 25, 1, 1, 0, 
+       27, 1, 1, 47, 48
 };
 
 static const char _use_syllable_machine_trans_actions[] = {
-       1, 2, 3, 4, 0, 0, 0, 7
-       0, 0, 4, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 4, 4, 0, 0, 
-       0, 0, 0, 0, 8, 9, 10, 11
+       1, 2, 0, 0, 5, 0, 6, 0
+       2, 0, 0, 0, 0, 0, 0, 0, 
+       0, 0, 2, 2, 0, 0, 0, 0, 
+       0, 0, 7, 8, 9, 10, 0, 0
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 12, 13, 14, 0, 0, 
-       0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 15, 16, 0, 
-       2, 17, 4, 18, 0, 0
+       0, 11, 12, 0, 0, 13, 14, 0, 
+       2, 15, 16, 0, 0
 };
 
 static const char _use_syllable_machine_to_state_actions[] = {
-       0, 0, 0, 5, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 3, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
@@ -330,9 +261,7 @@ static const char _use_syllable_machine_to_state_actions[] = {
 };
 
 static const char _use_syllable_machine_from_state_actions[] = {
-       0, 0, 0, 6, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 0, 0, 0, 
-       0, 0, 0, 0, 0, 0, 0, 0, 
+       0, 4, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 
@@ -342,29 +271,27 @@ static const char _use_syllable_machine_from_state_actions[] = {
 };
 
 static const short _use_syllable_machine_eof_trans[] = {
-       0, 1, 3, 0, 29, 31, 31, 52, 
-       31, 31, 31, 31, 31, 31, 31, 31, 
-       31, 31, 31, 31, 31, 31, 31, 31, 
-       31, 53, 53, 52, 53, 53, 53, 53, 
-       53, 53, 53, 53, 53, 53, 53, 53, 
-       53, 70, 70, 74, 74, 74, 74, 74, 
-       74, 74, 74, 74, 74, 74, 74, 74, 
-       74, 74, 74, 74, 74, 74, 76, 76, 
-       76
+       1, 0, 27, 29, 29, 50, 29, 29, 
+       29, 29, 29, 29, 29, 29, 29, 29, 
+       29, 29, 29, 29, 29, 29, 29, 51, 
+       54, 51, 55, 55, 55, 55, 55, 55, 
+       55, 55, 55, 55, 55, 55, 55, 55, 
+       55, 55, 55, 58, 55, 55, 59, 59, 
+       59
 };
 
-static const int use_syllable_machine_start = 3;
-static const int use_syllable_machine_first_final = 3;
-static const int use_syllable_machine_error = 0;
+static const int use_syllable_machine_start = 1;
+static const int use_syllable_machine_first_final = 1;
+static const int use_syllable_machine_error = -1;
 
-static const int use_syllable_machine_en_main = 3;
+static const int use_syllable_machine_en_main = 1;
 
 
 #line 38 "hb-ot-shape-complex-use-machine.rl"
 
 
 
-#line 145 "hb-ot-shape-complex-use-machine.rl"
+#line 138 "hb-ot-shape-complex-use-machine.rl"
 
 
 #define found_syllable(syllable_type) \
@@ -384,7 +311,7 @@ find_syllables (hb_buffer_t *buffer)
   int cs;
   hb_glyph_info_t *info = buffer->info;
   
-#line 388 "hb-ot-shape-complex-use-machine.hh"
+#line 315 "hb-ot-shape-complex-use-machine.hh"
        {
        cs = use_syllable_machine_start;
        ts = 0;
@@ -392,7 +319,7 @@ find_syllables (hb_buffer_t *buffer)
        act = 0;
        }
 
-#line 166 "hb-ot-shape-complex-use-machine.rl"
+#line 159 "hb-ot-shape-complex-use-machine.rl"
 
 
   p = 0;
@@ -401,7 +328,7 @@ find_syllables (hb_buffer_t *buffer)
   unsigned int last = 0;
   unsigned int syllable_serial = 1;
   
-#line 405 "hb-ot-shape-complex-use-machine.hh"
+#line 332 "hb-ot-shape-complex-use-machine.hh"
        {
        int _slen;
        int _trans;
@@ -409,15 +336,13 @@ find_syllables (hb_buffer_t *buffer)
        const char *_inds;
        if ( p == pe )
                goto _test_eof;
-       if ( cs == 0 )
-               goto _out;
 _resume:
        switch ( _use_syllable_machine_from_state_actions[cs] ) {
-       case 6:
+       case 4:
 #line 1 "NONE"
        {ts = p;}
        break;
-#line 421 "hb-ot-shape-complex-use-machine.hh"
+#line 346 "hb-ot-shape-complex-use-machine.hh"
        }
 
        _keys = _use_syllable_machine_trans_keys + (cs<<1);
@@ -439,92 +364,70 @@ _eof_trans:
 #line 1 "NONE"
        {te = p+1;}
        break;
-       case 9:
-#line 134 "hb-ot-shape-complex-use-machine.rl"
+       case 8:
+#line 127 "hb-ot-shape-complex-use-machine.rl"
        {te = p+1;{ found_syllable (independent_cluster); }}
        break;
-       case 11:
-#line 136 "hb-ot-shape-complex-use-machine.rl"
-       {te = p+1;{ found_syllable (consonant_cluster); }}
-       break;
-       case 14:
-#line 137 "hb-ot-shape-complex-use-machine.rl"
-       {te = p+1;{ found_syllable (vowel_cluster); }}
-       break;
-       case 16:
-#line 138 "hb-ot-shape-complex-use-machine.rl"
-       {te = p+1;{ found_syllable (number_joiner_terminated_cluster); }}
+       case 10:
+#line 129 "hb-ot-shape-complex-use-machine.rl"
+       {te = p+1;{ found_syllable (standard_cluster); }}
        break;
-       case 7:
-#line 141 "hb-ot-shape-complex-use-machine.rl"
+       case 6:
+#line 133 "hb-ot-shape-complex-use-machine.rl"
        {te = p+1;{ found_syllable (broken_cluster); }}
        break;
-       case 8:
+       case 5:
 #line 134 "hb-ot-shape-complex-use-machine.rl"
+       {te = p+1;{ found_syllable (non_cluster); }}
+       break;
+       case 7:
+#line 127 "hb-ot-shape-complex-use-machine.rl"
        {te = p;p--;{ found_syllable (independent_cluster); }}
        break;
-       case 12:
-#line 135 "hb-ot-shape-complex-use-machine.rl"
+       case 11:
+#line 128 "hb-ot-shape-complex-use-machine.rl"
        {te = p;p--;{ found_syllable (virama_terminated_cluster); }}
        break;
-       case 10:
-#line 136 "hb-ot-shape-complex-use-machine.rl"
-       {te = p;p--;{ found_syllable (consonant_cluster); }}
+       case 9:
+#line 129 "hb-ot-shape-complex-use-machine.rl"
+       {te = p;p--;{ found_syllable (standard_cluster); }}
        break;
        case 13:
-#line 137 "hb-ot-shape-complex-use-machine.rl"
-       {te = p;p--;{ found_syllable (vowel_cluster); }}
+#line 130 "hb-ot-shape-complex-use-machine.rl"
+       {te = p;p--;{ found_syllable (number_joiner_terminated_cluster); }}
        break;
-       case 15:
-#line 139 "hb-ot-shape-complex-use-machine.rl"
+       case 12:
+#line 131 "hb-ot-shape-complex-use-machine.rl"
        {te = p;p--;{ found_syllable (numeral_cluster); }}
        break;
-       case 18:
-#line 140 "hb-ot-shape-complex-use-machine.rl"
+       case 16:
+#line 132 "hb-ot-shape-complex-use-machine.rl"
        {te = p;p--;{ found_syllable (symbol_cluster); }}
        break;
-       case 17:
-#line 141 "hb-ot-shape-complex-use-machine.rl"
+       case 14:
+#line 133 "hb-ot-shape-complex-use-machine.rl"
        {te = p;p--;{ found_syllable (broken_cluster); }}
        break;
-       case 1:
-#line 139 "hb-ot-shape-complex-use-machine.rl"
-       {{p = ((te))-1;}{ found_syllable (numeral_cluster); }}
-       break;
-       case 3:
-#line 1 "NONE"
-       {       switch( act ) {
-       case 0:
-       {{cs = 0; goto _again;}}
-       break;
-       case 8:
-       {{p = ((te))-1;} found_syllable (broken_cluster); }
-       break;
-       }
-       }
+       case 15:
+#line 134 "hb-ot-shape-complex-use-machine.rl"
+       {te = p;p--;{ found_syllable (non_cluster); }}
        break;
-       case 4:
-#line 1 "NONE"
-       {te = p+1;}
-#line 141 "hb-ot-shape-complex-use-machine.rl"
-       {act = 8;}
+       case 1:
+#line 133 "hb-ot-shape-complex-use-machine.rl"
+       {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
        break;
-#line 513 "hb-ot-shape-complex-use-machine.hh"
+#line 420 "hb-ot-shape-complex-use-machine.hh"
        }
 
 _again:
        switch ( _use_syllable_machine_to_state_actions[cs] ) {
-       case 5:
+       case 3:
 #line 1 "NONE"
        {ts = 0;}
-#line 1 "NONE"
-       {act = 0;}
        break;
-#line 524 "hb-ot-shape-complex-use-machine.hh"
+#line 429 "hb-ot-shape-complex-use-machine.hh"
        }
 
-       if ( cs == 0 )
-               goto _out;
        if ( ++p != pe )
                goto _resume;
        _test_eof: {}
@@ -536,10 +439,9 @@ _again:
        }
        }
 
-       _out: {}
        }
 
-#line 175 "hb-ot-shape-complex-use-machine.rl"
+#line 168 "hb-ot-shape-complex-use-machine.rl"
 
 }
 
index b8242ba..f6b814b 100644 (file)
@@ -44,7 +44,6 @@
 O      = 0; # OTHER
 
 B      = 1; # BASE
-IV     = 2; # BASE_VOWEL
 IND    = 3; # BASE_IND
 N      = 4; # BASE_NUM
 GB     = 5; # BASE_OTHER
@@ -96,11 +95,11 @@ vowel_modifiers = VMPre* VMAbv* VMBlw* VMPst*;
 final_consonants = FAbv* FBlw* FPst* FM?;
 
 virama_terminated_cluster =
-       R? (B | GB | IV) VS?
+       R? (B | GB) VS?
        consonant_modifiers
        H
 ;
-consonant_cluster =
+standard_cluster =
        R? (B | GB) VS?
        consonant_modifiers
        medial_consonants
@@ -108,13 +107,6 @@ consonant_cluster =
        vowel_modifiers
        final_consonants
 ;
-vowel_cluster =
-       R? (IV) VS?
-       consonant_modifiers
-       medial_consonants
-       vowel_modifiers
-       final_consonants
-;
 
 broken_cluster =
        R?
@@ -125,20 +117,21 @@ broken_cluster =
        final_consonants
 ;
 
-number_joiner_terminated_cluster = N VS? (HN N VS?)* H;
+number_joiner_terminated_cluster = N VS? (HN N VS?)* HN;
 numeral_cluster = N VS? (HN N VS?)*;
 symbol_cluster = S VS? SMAbv* SMBlw*;
 independent_cluster = (IND | O | Rsv | WJ) VS?;
+other = any;
 
 main := |*
        independent_cluster                     => { found_syllable (independent_cluster); };
        virama_terminated_cluster               => { found_syllable (virama_terminated_cluster); };
-       consonant_cluster                       => { found_syllable (consonant_cluster); };
-       vowel_cluster                           => { found_syllable (vowel_cluster); };
+       standard_cluster                        => { found_syllable (standard_cluster); };
        number_joiner_terminated_cluster        => { found_syllable (number_joiner_terminated_cluster); };
        numeral_cluster                         => { found_syllable (numeral_cluster); };
        symbol_cluster                          => { found_syllable (symbol_cluster); };
        broken_cluster                          => { found_syllable (broken_cluster); };
+       other                                   => { found_syllable (non_cluster); };
 *|;
 
 
index a143736..ae428cb 100644 (file)
@@ -46,7 +46,6 @@ enum use_category_t {
   USE_O                = 0,    /* OTHER */
 
   USE_B                = 1,    /* BASE */
-  USE_IV       = 2,    /* BASE_VOWEL */
   USE_IND      = 3,    /* BASE_IND */
   USE_N                = 4,    /* BASE_NUM */
   USE_GB       = 5,    /* BASE_OTHER */
index 6cd1c5d..38c46d0 100644 (file)
@@ -6,12 +6,12 @@
  *
  * on files with these headers:
  *
- * # IndicSyllabicCategory-8.0.0.txt
- * # Date: 2015-05-12, 10:00:00 GMT [RP, KW, LI]
- * # IndicPositionalCategory-8.0.0.txt
- * # Date: 2015-05-12, 10:00:00 GMT [RP, KW, LI]
- * # Blocks-8.0.0.txt
- * # Date: 2014-11-10, 23:04:00 GMT [KW]
+ * # IndicSyllabicCategory-9.0.0.txt
+ * # Date: 2016-05-21, 02:46:00 GMT [RP]
+ * # IndicPositionalCategory-9.0.0.txt
+ * # Date: 2016-02-25, 00:48:00 GMT [RP]
+ * # Blocks-9.0.0.txt
+ * # Date: 2016-02-05, 23:48:00 GMT [KW]
  * UnicodeData.txt does not have a header.
  */
 
@@ -24,7 +24,6 @@
 #define H      USE_H   /* HALANT */
 #define HN     USE_HN  /* HALANT_NUM */
 #define IND    USE_IND /* BASE_IND */
-#define IV     USE_IV  /* BASE_VOWEL */
 #define N      USE_N   /* BASE_NUM */
 #define O      USE_O   /* OTHER */
 #define R      USE_R   /* REPHA */
@@ -80,30 +79,30 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Devanagari */
 
-  /* 0900 */ VMAbv, VMAbv, VMAbv, VMPst,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,
-  /* 0910 */    IV,    IV,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0900 */ VMAbv, VMAbv, VMAbv, VMPst,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0910 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0920 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0930 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VAbv,  VPst, CMBlw,     B,  VPst,  VPre,
   /* 0940 */  VPst,  VBlw,  VBlw,  VBlw,  VBlw,  VAbv,  VAbv,  VAbv,  VAbv,  VPst,  VPst,  VPst,  VPst,     H,  VPre,  VPst,
   /* 0950 */     O, VMAbv, VMBlw,     O,     O,  VAbv,  VBlw,  VBlw,     B,     B,     B,     B,     B,     B,     B,     B,
-  /* 0960 */    IV,    IV,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
-  /* 0970 */     O,     O,    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0960 */     B,     B,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0970 */     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
 
   /* Bengali */
 
-  /* 0980 */     O, VMAbv, VMPst, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     O,     O,    IV,
-  /* 0990 */    IV,     O,     O,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0980 */     O, VMAbv, VMPst, VMPst,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,
+  /* 0990 */     B,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 09A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
   /* 09B0 */     B,     O,     B,     O,     O,     O,     B,     B,     B,     B,     O,     O, CMBlw,     B,  VPst,  VPre,
   /* 09C0 */  VPst,  VBlw,  VBlw,  VBlw,  VBlw,     O,     O,  VPre,  VPre,     O,     O,  VPre,  VPre,     H,   IND,     O,
   /* 09D0 */     O,     O,     O,     O,     O,     O,     O,  VPst,     O,     O,     O,     O,     B,     B,     O,     B,
-  /* 09E0 */    IV,    IV,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 09E0 */     B,     B,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 09F0 */     B,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Gurmukhi */
 
-  /* 0A00 */     O, VMAbv, VMAbv, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,     O,     O,     O,     O,    IV,
-  /* 0A10 */    IV,     O,     O,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0A00 */     O, VMAbv, VMAbv, VMPst,     O,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     B,
+  /* 0A10 */     B,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0A20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
   /* 0A30 */     B,     O,     B,     B,     O,     B,     B,     O,     B,     B,     O,     O, CMBlw,     O,  VPst,  VPre,
   /* 0A40 */  VPst,  VBlw,  VBlw,     O,     O,     O,     O,  VAbv,  VAbv,     O,     O,  VAbv,  VAbv,     H,     O,     O,
@@ -113,30 +112,30 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Gujarati */
 
-  /* 0A80 */     O, VMAbv, VMAbv, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     O,    IV,
-  /* 0A90 */    IV,    IV,     O,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0A80 */     O, VMAbv, VMAbv, VMPst,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,
+  /* 0A90 */     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0AA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
   /* 0AB0 */     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,     O,     O, CMBlw,     B,  VPst,  VPre,
   /* 0AC0 */  VPst,  VBlw,  VBlw,  VBlw,  VBlw,  VAbv,     O,  VAbv,  VAbv,  VAbv,     O,  VPst,  VPst,     H,     O,     O,
   /* 0AD0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
-  /* 0AE0 */    IV,    IV,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0AE0 */     B,     B,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0AF0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     B,     O,     O,     O,     O,     O,     O,
 
   /* Oriya */
 
-  /* 0B00 */     O, VMAbv, VMPst, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     O,     O,    IV,
-  /* 0B10 */    IV,     O,     O,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0B00 */     O, VMAbv, VMPst, VMPst,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,
+  /* 0B10 */     B,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0B20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
   /* 0B30 */     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,     O,     O, CMBlw,     B,  VPst,  VAbv,
   /* 0B40 */  VPst,  VBlw,  VBlw,  VBlw,  VBlw,     O,     O,  VPre,  VPre,     O,     O,  VPre,  VPre,     H,     O,     O,
   /* 0B50 */     O,     O,     O,     O,     O,     O,  VAbv,  VAbv,     O,     O,     O,     O,     B,     B,     O,     B,
-  /* 0B60 */    IV,    IV,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0B60 */     B,     B,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0B70 */     O,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Tamil */
 
-  /* 0B80 */     O,     O, VMAbv,   IND,     O,    IV,    IV,    IV,    IV,    IV,    IV,     O,     O,     O,    IV,    IV,
-  /* 0B90 */    IV,     O,    IV,    IV,    IV,     B,     O,     O,     O,     B,     B,     O,     B,     O,     B,     B,
+  /* 0B80 */     O,     O, VMAbv,   IND,     O,     B,     B,     B,     B,     B,     B,     O,     O,     O,     B,     B,
+  /* 0B90 */     B,     O,     B,     B,     B,     B,     O,     O,     O,     B,     B,     O,     B,     O,     B,     B,
   /* 0BA0 */     O,     O,     O,     B,     B,     O,     O,     O,     B,     B,     B,     O,     O,     O,     B,     B,
   /* 0BB0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,  VPst,  VPst,
   /* 0BC0 */  VAbv,  VPst,  VPst,     O,     O,     O,  VPre,  VPre,  VPre,     O,  VPre,  VPre,  VPre,     H,     O,     O,
@@ -146,41 +145,41 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Telugu */
 
-  /* 0C00 */ VMAbv, VMPst, VMPst, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     O,    IV,    IV,
-  /* 0C10 */    IV,     O,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0C00 */ VMAbv, VMPst, VMPst, VMPst,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
+  /* 0C10 */     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0C20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
   /* 0C30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     B,  VAbv,  VAbv,
   /* 0C40 */  VAbv,  VPst,  VPst,  VPst,  VPst,     O,  VAbv,  VAbv,  VAbv,     O,  VAbv,  VAbv,  VAbv,     H,     O,     O,
   /* 0C50 */     O,     O,     O,     O,     O,  VAbv,  VBlw,     O,     B,     B,     B,     O,     O,     O,     O,     O,
-  /* 0C60 */    IV,    IV,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0C60 */     B,     B,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0C70 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Kannada */
 
-  /* 0C80 */     O, VMAbv, VMPst, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     O,    IV,    IV,
-  /* 0C90 */    IV,     O,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0C80 */     O, VMAbv, VMPst, VMPst,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
+  /* 0C90 */     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0CA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
   /* 0CB0 */     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     O,     O, CMBlw,     B,  VPst,  VAbv,
   /* 0CC0 */  VAbv,  VPst,  VPst,  VPst,  VPst,     O,  VAbv,  VAbv,  VAbv,     O,  VAbv,  VAbv,  VAbv,     H,     O,     O,
   /* 0CD0 */     O,     O,     O,     O,     O,  VPst,  VPst,     O,     O,     O,     O,     O,     O,     O,     B,     O,
-  /* 0CE0 */    IV,    IV,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0CE0 */     B,     B,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0CF0 */     O,     R,     R,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Malayalam */
 
-  /* 0D00 */     O, VMAbv, VMPst, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     O,    IV,    IV,
-  /* 0D10 */    IV,     O,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0D00 */     O, VMAbv, VMPst, VMPst,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
+  /* 0D10 */     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0D20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0D30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,  VPst,  VPst,
   /* 0D40 */  VPst,  VPst,  VPst,  VBlw,  VBlw,     O,  VPre,  VPre,  VPre,     O,  VPre,  VPre,  VPre,     H,     R,     O,
-  /* 0D50 */     O,     O,     O,     O,     O,     O,     O,  VPst,     O,     O,     O,     O,     O,     O,     O,    IV,
-  /* 0D60 */    IV,    IV,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0D50 */     O,     O,     O,     O,   IND,   IND,   IND,  VPst,     O,     O,     O,     O,     O,     O,     O,     B,
+  /* 0D60 */     B,     B,  VBlw,  VBlw,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0D70 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,   IND,   IND,   IND,   IND,   IND,   IND,
 
   /* Sinhala */
 
-  /* 0D80 */     O,     O, VMPst, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,
-  /* 0D90 */    IV,    IV,    IV,    IV,    IV,    IV,    IV,     O,     O,     O,     B,     B,     B,     B,     B,     B,
+  /* 0D80 */     O,     O, VMPst, VMPst,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 0D90 */     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     B,     B,     B,     B,     B,     B,
   /* 0DA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 0DB0 */     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     O,     O,
   /* 0DC0 */     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     H,     O,     O,     O,     O,  VPst,
@@ -195,10 +194,10 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* 1000 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1010 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
-  /* 1020 */     B,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,  VPst,  VPst,  VAbv,  VAbv,  VBlw,
+  /* 1020 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPst,  VPst,  VAbv,  VAbv,  VBlw,
   /* 1030 */  VBlw,  VPre,  VAbv,  VAbv,  VAbv,  VAbv, VMAbv, VMBlw, VMPst,     H,  VAbv,  MPst,  MPre,  MBlw,  MBlw,     B,
   /* 1040 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,    GB,     O,
-  /* 1050 */     B,     B,    IV,    IV,    IV,    IV,  VPst,  VPst,  VBlw,  VBlw,     B,     B,     B,     B,  MBlw,  MBlw,
+  /* 1050 */     B,     B,     B,     B,     B,     B,  VPst,  VPst,  VBlw,  VBlw,     B,     B,     B,     B,  MBlw,  MBlw,
   /* 1060 */  MBlw,     B,  VPst, VMPst, VMPst,     B,     B,  VPst,  VPst, VMPst, VMPst, VMPst, VMPst, VMPst,     B,     B,
   /* 1070 */     B,  VAbv,  VAbv,  VAbv,  VAbv,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1080 */     B,     B,  MBlw,  VPst,  VPre,  VAbv,  VAbv, VMPst, VMPst, VMPst, VMPst, VMPst, VMPst, VMBlw,     B, VMPst,
@@ -209,30 +208,30 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Tagalog */
 
-  /* 1700 */    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
+  /* 1700 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
   /* 1710 */     B,     B,  VAbv,  VBlw,  VBlw,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Hanunoo */
 
-  /* 1720 */    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 1720 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1730 */     B,     B,  VAbv,  VBlw,  VBlw,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Buhid */
 
-  /* 1740 */    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 1740 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1750 */     B,     B,  VAbv,  VBlw,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Tagbanwa */
 
-  /* 1760 */    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
+  /* 1760 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
   /* 1770 */     B,     O,  VAbv,  VBlw,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Khmer */
 
   /* 1780 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1790 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
-  /* 17A0 */     B,     B,     B,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,
-  /* 17B0 */    IV,    IV,    IV,    IV,     O,     O,  VPst,  VAbv,  VAbv,  VAbv,  VAbv,  VBlw,  VBlw,  VBlw,  VPre,  VPre,
+  /* 17A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 17B0 */     B,     B,     B,     B,     O,     O,  VPst,  VAbv,  VAbv,  VAbv,  VAbv,  VBlw,  VBlw,  VBlw,  VPre,  VPre,
   /* 17C0 */  VPre,  VPre,  VPre,  VPre,  VPre,  VPre, VMAbv, VMPst,  VPst, VMAbv, VMAbv,    FM,  FAbv, CMAbv,    FM,    FM,
   /* 17D0 */    FM,  VAbv,     H,    FM,     O,     O,     O,     O,     O,     O,     O,     O,     B,  VAbv,     O,     O,
   /* 17E0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
@@ -274,8 +273,8 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* 1A20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1A30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
-  /* 1A40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,    IV,    IV,    IV,
-  /* 1A50 */    IV,    IV,    IV,     B,     B,  MPre,  MBlw,  FPst,  FAbv,  FAbv,  FAbv,  FBlw,  FBlw,  FBlw,  FBlw,     O,
+  /* 1A40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 1A50 */     B,     B,     B,     B,     B,  MPre,  MBlw,  FPst,  FAbv,  FAbv,  FAbv,  FBlw,  FBlw,  FBlw,  FBlw,     O,
   /* 1A60 */     H,  VPst,  VAbv,  VPst,  VPst,  VAbv,  VAbv,  VAbv,  VAbv,  VBlw,  VBlw,  VAbv,  VBlw,  VPst,  VPre,  VPre,
   /* 1A70 */  VPre,  VPre,  VPre,  VAbv,  VAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv,    FM,    FM,    FM,     O,     O,    FM,
   /* 1A80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
@@ -286,8 +285,8 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Balinese */
 
-  /* 1B00 */ VMAbv, VMAbv, VMAbv,  FAbv, VMPst,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,
-  /* 1B10 */    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 1B00 */ VMAbv, VMAbv, VMAbv,  FAbv, VMPst,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 1B10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1B20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1B30 */     B,     B,     B,     B, CMAbv,  VPst,  VAbv,  VAbv,  VBlw,  VBlw,  VBlw,  VBlw,  VAbv,  VAbv,  VPre,  VPre,
   /* 1B40 */  VPre,  VPre,  VAbv,  VAbv,     H,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,
@@ -297,7 +296,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Sundanese */
 
-  /* 1B80 */ VMAbv,  FAbv, VMPst,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,
+  /* 1B80 */ VMAbv,  FAbv, VMPst,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1B90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1BA0 */     B,   SUB,   SUB,   SUB,  VAbv,  VBlw,  VPre,  VPst,  VAbv,  VAbv,  VPst,     H,   SUB,   SUB,     B,     B,
   /* 1BB0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
@@ -306,7 +305,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* 1BC0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 1BD0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
-  /* 1BE0 */     B,     B,     B,     B,    IV,    IV, CMAbv,  VPst,  VAbv,  VAbv,  VPst,  VPst,  VPst,  VAbv,  VPst,  VAbv,
+  /* 1BE0 */     B,     B,     B,     B,     B,     B, CMAbv,  VPst,  VAbv,  VAbv,  VPst,  VPst,  VPst,  VAbv,  VPst,  VAbv,
   /* 1BF0 */  FAbv,  FAbv,  VPst,  VPst,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Lepcha */
@@ -326,14 +325,20 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
   /* 1CE0 */ VMAbv, VMPst, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw, VMBlw,     O,     O,     O,     O, VMBlw,     O,     O,
   /* 1CF0 */     O,     O, VMPst, VMPst, VMAbv,     O,     O,     O, VMAbv, VMAbv,     O,     O,     O,     O,     O,     O,
 
-#define use_offset_0x2008u 2552
+#define use_offset_0x1df8u 2552
+
+
+  /* Combining Diacritical Marks Supplement */
+                                                                         O,     O,     O,    FM,     O,     O,     O,     O,
+
+#define use_offset_0x2008u 2560
 
 
   /* General Punctuation */
                                                                          O,     O,     O,     O,  ZWNJ,   ZWJ,     O,     O,
   /* 2010 */    GB,    GB,    GB,    GB,    GB,     O,     O,     O,
 
-#define use_offset_0x2060u 2568
+#define use_offset_0x2060u 2576
 
   /* 2060 */    WJ,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
@@ -342,12 +347,12 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
   /* 2070 */     O,     O,     O,     O,    FM,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
   /* 2080 */     O,     O,    FM,    FM,    FM,     O,     O,     O,
 
-#define use_offset_0xa800u 2608
+#define use_offset_0xa800u 2616
 
 
   /* Syloti Nagri */
 
-  /* A800 */    IV,    IV,     O,    IV,    IV,    IV,  VAbv,     B,     B,     B,     B, VMAbv,     B,     B,     B,     B,
+  /* A800 */     B,     B,     O,     B,     B,     B,  VAbv,     B,     B,     B,     B, VMAbv,     B,     B,     B,     B,
   /* A810 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* A820 */     B,     B,     B,  VPst,  VPst,  VBlw,  VAbv,  VPst,     O,     O,     O,     O,     O,     O,     O,     O,
   /* A830 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
@@ -361,11 +366,11 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Saurashtra */
 
-  /* A880 */ VMPst, VMPst,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,
-  /* A890 */    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* A880 */ VMPst, VMPst,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* A890 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* A8A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* A8B0 */     B,     B,     B,     B,  FPst,  VPst,  VPst,  VPst,  VPst,  VPst,  VPst,  VPst,  VPst,  VPst,  VPst,  VPst,
-  /* A8C0 */  VPst,  VPst,  VPst,  VPst,     H,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
+  /* A8C0 */  VPst,  VPst,  VPst,  VPst,     H, VMAbv,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
   /* A8D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
 
   /* Devanagari Extended */
@@ -389,7 +394,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Javanese */
 
-  /* A980 */ VMAbv, VMAbv,  FAbv, VMPst,    IV,    IV,    IV,    IV,    IV,     B,     B,     B,    IV,    IV,    IV,     B,
+  /* A980 */ VMAbv, VMAbv,  FAbv, VMPst,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* A990 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* A9A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* A9B0 */     B,     B,     B, CMAbv,  VPst,  VPst,  VAbv,  VAbv,  VBlw,  VBlw,  VPre,  VPre,  VAbv,   SUB,  MPst,  MPst,
@@ -403,7 +408,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Cham */
 
-  /* AA00 */    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* AA00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* AA10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* AA20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,  VAbv,  VAbv,  VAbv,  VAbv,  VBlw,  VAbv,  VPre,
   /* AA30 */  VPre,  VAbv,  VBlw,  MPst,  MPre,  MBlw,  MBlw,     O,     O,     O,     O,     O,     O,     O,     O,     O,
@@ -413,7 +418,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
   /* Myanmar Extended-A */
 
   /* AA60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
-  /* AA70 */     O,     B,     B,     B,     O,     O,     O,     O,     O,     O,     B, VMPst, VMAbv, VMPst,     B,     B,
+  /* AA70 */     O,     B,     B,     B,    GB,    GB,    GB,     O,     O,     O,     B, VMPst, VMAbv, VMPst,     B,     B,
 
   /* Tai Viet */
 
@@ -426,27 +431,27 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Meetei Mayek Extensions */
 
-  /* AAE0 */    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPre,  VBlw,  VAbv,  VPre,  VPst,
+  /* AAE0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPre,  VBlw,  VAbv,  VPre,  VPst,
   /* AAF0 */     O,     O,     O,     O,     O, VMPst,     H,     O,
 
-#define use_offset_0xabc0u 3368
+#define use_offset_0xabc0u 3376
 
 
   /* Meetei Mayek */
 
-  /* ABC0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,    IV,    IV,
-  /* ABD0 */     B,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* ABC0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* ABD0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* ABE0 */     B,     B,     B,  VPst,  VPst,  VAbv,  VPst,  VPst,  VBlw,  VPst,  VPst,     O, VMPst,  VBlw,     O,     O,
   /* ABF0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
 
-#define use_offset_0xfe00u 3432
+#define use_offset_0xfe00u 3440
 
 
   /* Variation Selectors */
 
   /* FE00 */    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,    VS,
 
-#define use_offset_0x10a00u 3448
+#define use_offset_0x10a00u 3456
 
 
   /* Kharoshthi */
@@ -457,13 +462,13 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
   /* 10A30 */     B,     B,     B,     B,     O,     O,     O,     O, CMAbv, CMBlw, CMBlw,     O,     O,     O,     O,     H,
   /* 10A40 */     B,     B,     B,     B,     B,     B,     B,     B,
 
-#define use_offset_0x11000u 3520
+#define use_offset_0x11000u 3528
 
 
   /* Brahmi */
 
-  /* 11000 */ VMPst, VMAbv, VMPst,     R,     R,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,
-  /* 11010 */    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11000 */ VMPst, VMAbv, VMPst,     R,     R,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11010 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11020 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11030 */     B,     B,     B,     B,     B,     B,     B,     B,  VAbv,  VAbv,  VAbv,  VAbv,  VBlw,  VBlw,  VBlw,  VBlw,
   /* 11040 */  VBlw,  VBlw,  VAbv,  VAbv,  VAbv,  VAbv,     H,     O,     O,     O,     O,     O,     O,     O,     O,     O,
@@ -473,17 +478,17 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Kaithi */
 
-  /* 11080 */ VMAbv, VMAbv, VMPst,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,     B,
+  /* 11080 */ VMAbv, VMAbv, VMPst,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11090 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 110A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 110B0 */  VPst,  VPre,  VPst,  VBlw,  VBlw,  VAbv,  VAbv,  VPst,  VPst,     H, CMBlw,     O,     O,     O,     O,     O,
 
-#define use_offset_0x11100u 3712
+#define use_offset_0x11100u 3720
 
 
   /* Chakma */
 
-  /* 11100 */ VMAbv, VMAbv, VMAbv,    IV,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11100 */ VMAbv, VMAbv, VMAbv,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11110 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11120 */     B,     B,     B,     B,     B,     B,     B,  VAbv,  VAbv,  VAbv,  VBlw,  VBlw,  VPre,  VAbv,  VAbv,  VAbv,
   /* 11130 */  VAbv,  VBlw,  VBlw,     H,  VAbv,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
@@ -497,8 +502,8 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Sharada */
 
-  /* 11180 */ VMAbv, VMAbv, VMPst,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,
-  /* 11190 */    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11180 */ VMAbv, VMAbv, VMPst,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11190 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 111A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 111B0 */     B,     B,     B,  VPst,  VPre,  VPst,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,  VAbv,  VAbv,  VAbv,  VAbv,
   /* 111C0 */     H,     B,     R,     R,     O,     O,     O,     O,     O,     O, CMBlw,  VAbv,  VBlw,     O,     O,     O,
@@ -511,23 +516,23 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Khojki */
 
-  /* 11200 */    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11200 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11210 */     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11220 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPst,  VPst,  VPst,  VBlw,
-  /* 11230 */  VAbv,  VAbv,  VAbv,  VAbv, VMAbv,     H, CMAbv, CMAbv,
+  /* 11230 */  VAbv,  VAbv,  VAbv,  VAbv, VMAbv,     H, CMAbv, CMAbv,     O,     O,     O,     O,     O,     O, VMAbv,     O,
 
-#define use_offset_0x11280u 4024
+#define use_offset_0x11280u 4040
 
 
   /* Multani */
 
-  /* 11280 */    IV,    IV,    IV,    IV,     B,     B,     B,     O,     B,     O,     B,     B,     B,     B,     O,     B,
+  /* 11280 */     B,     B,     B,     B,     B,     B,     B,     O,     B,     O,     B,     B,     B,     B,     O,     B,
   /* 11290 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,
   /* 112A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,
 
   /* Khudawadi */
 
-  /* 112B0 */    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,
+  /* 112B0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 112C0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 112D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B, VMAbv,
   /* 112E0 */  VPst,  VPre,  VPst,  VBlw,  VBlw,  VAbv,  VAbv,  VAbv,  VAbv, CMBlw,  VBlw,     O,     O,     O,     O,     O,
@@ -535,44 +540,55 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Grantha */
 
-  /* 11300 */ VMAbv, VMAbv, VMPst, VMPst,     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     O,     O,    IV,
-  /* 11310 */    IV,     O,     O,    IV,    IV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11300 */ VMAbv, VMAbv, VMPst, VMPst,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,
+  /* 11310 */     B,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11320 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
   /* 11330 */     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,     O,     O, CMBlw,     B,  VPst,  VPst,
   /* 11340 */  VAbv,  VPst,  VPst,  VPst,  VPst,     O,     O,  VPre,  VPre,     O,     O,  VPre,  VPre,     H,     O,     O,
   /* 11350 */     O,     O,     O,     O,     O,     O,     O,  VPst,     O,     O,     O,     O,     O,     O,     O,     O,
-  /* 11360 */    IV,    IV,  VPst,  VPst,     O,     O, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv,     O,     O,     O,
+  /* 11360 */     B,     B,  VPst,  VPst,     O,     O, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv, VMAbv,     O,     O,     O,
   /* 11370 */ VMAbv, VMAbv, VMAbv, VMAbv, VMAbv,     O,     O,     O,
 
-#define use_offset_0x11480u 4272
+#define use_offset_0x11400u 4288
 
 
+  /* Newa */
+
+  /* 11400 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11410 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11420 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11430 */     B,     B,     B,     B,     B,  VPst,  VPre,  VPst,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,  VAbv,  VAbv,
+  /* 11440 */  VPst,  VPst,     H, VMAbv, VMAbv, VMPst, CMBlw,     B,     O,     O,     O,     O,     O,     O,     O,     O,
+  /* 11450 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
+  /* 11460 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
+  /* 11470 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
+
   /* Tirhuta */
 
-  /* 11480 */     O,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     B,
+  /* 11480 */     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11490 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 114A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 114B0 */  VPst,  VPre,  VPst,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,  VPre,  VAbv,  VPre,  VPre,  VPst,  VPre, VMAbv,
   /* 114C0 */ VMAbv, VMPst,     H, CMBlw,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
   /* 114D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
 
-#define use_offset_0x11580u 4368
+#define use_offset_0x11580u 4512
 
 
   /* Siddham */
 
-  /* 11580 */    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,
+  /* 11580 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11590 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 115A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPst,
   /* 115B0 */  VPre,  VPst,  VBlw,  VBlw,  VBlw,  VBlw,     O,     O,  VPre,  VPre,  VPre,  VPre, VMAbv, VMAbv, VMPst,     H,
   /* 115C0 */ CMBlw,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
-  /* 115D0 */     O,     O,     O,     O,     O,     O,     O,     O,    IV,    IV,    IV,    IV,  VBlw,  VBlw,     O,     O,
+  /* 115D0 */     O,     O,     O,     O,     O,     O,     O,     O,     B,     B,     B,     B,  VBlw,  VBlw,     O,     O,
   /* 115E0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
   /* 115F0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
 
   /* Modi */
 
-  /* 11600 */    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,
+  /* 11600 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11610 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11620 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11630 */  VPst,  VPst,  VPst,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,  VAbv,  VAbv,  VPst,  VPst, VMAbv, VMPst,     H,
@@ -583,7 +599,7 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
 
   /* Takri */
 
-  /* 11680 */    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,    IV,     B,     B,     B,     B,     B,     B,
+  /* 11680 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 11690 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
   /* 116A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B, VMAbv, VMPst,  VAbv,  VPre,  VPst,
   /* 116B0 */  VBlw,  VBlw,  VAbv,  VAbv,  VAbv,  VAbv,     H, CMBlw,     O,     O,     O,     O,     O,     O,     O,     O,
@@ -599,7 +615,28 @@ static const USE_TABLE_ELEMENT_TYPE use_table[] = {
   /* 11720 */  VPst,  VPst,  VAbv,  VAbv,  VBlw,  VBlw,  VPre,  VAbv,  VBlw,  VAbv,  VAbv,  VAbv,     O,     O,     O,     O,
   /* 11730 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,
 
-}; /* Table items: 4816; occupancy: 72% */
+#define use_offset_0x11c00u 4960
+
+
+  /* Bhaiksuki */
+
+  /* 11C00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
+  /* 11C10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11C20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPst,
+  /* 11C30 */  VAbv,  VAbv,  VBlw,  VBlw,  VBlw,  VBlw,  VBlw,     O,  VAbv,  VAbv,  VAbv,  VAbv, VMAbv, VMAbv, VMPst,     H,
+  /* 11C40 */     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
+  /* 11C50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11C60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,
+
+  /* Marchen */
+
+  /* 11C70 */     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11C80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
+  /* 11C90 */     O,     O,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,
+  /* 11CA0 */   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,     O,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,
+  /* 11CB0 */  VBlw,  VPre,  VBlw,  VAbv,  VPst, VMAbv, VMAbv,     O,
+
+}; /* Table items: 5144; occupancy: 72% */
 
 USE_TABLE_ELEMENT_TYPE
 hb_use_get_categories (hb_codepoint_t u)
@@ -619,6 +656,7 @@ hb_use_get_categories (hb_codepoint_t u)
       if (hb_in_range (u, 0x1900u, 0x1A9Fu)) return use_table[u - 0x1900u + use_offset_0x1900u];
       if (hb_in_range (u, 0x1B00u, 0x1C4Fu)) return use_table[u - 0x1B00u + use_offset_0x1b00u];
       if (hb_in_range (u, 0x1CD0u, 0x1CFFu)) return use_table[u - 0x1CD0u + use_offset_0x1cd0u];
+      if (hb_in_range (u, 0x1DF8u, 0x1DFFu)) return use_table[u - 0x1DF8u + use_offset_0x1df8u];
       break;
 
     case 0x2u:
@@ -642,10 +680,11 @@ hb_use_get_categories (hb_codepoint_t u)
 
     case 0x11u:
       if (hb_in_range (u, 0x11000u, 0x110BFu)) return use_table[u - 0x11000u + use_offset_0x11000u];
-      if (hb_in_range (u, 0x11100u, 0x11237u)) return use_table[u - 0x11100u + use_offset_0x11100u];
+      if (hb_in_range (u, 0x11100u, 0x1123Fu)) return use_table[u - 0x11100u + use_offset_0x11100u];
       if (hb_in_range (u, 0x11280u, 0x11377u)) return use_table[u - 0x11280u + use_offset_0x11280u];
-      if (hb_in_range (u, 0x11480u, 0x114DFu)) return use_table[u - 0x11480u + use_offset_0x11480u];
+      if (hb_in_range (u, 0x11400u, 0x114DFu)) return use_table[u - 0x11400u + use_offset_0x11400u];
       if (hb_in_range (u, 0x11580u, 0x1173Fu)) return use_table[u - 0x11580u + use_offset_0x11580u];
+      if (hb_in_range (u, 0x11C00u, 0x11CB7u)) return use_table[u - 0x11C00u + use_offset_0x11c00u];
       if (unlikely (u == 0x1107Fu)) return HN;
       break;
 
@@ -662,7 +701,6 @@ hb_use_get_categories (hb_codepoint_t u)
 #undef H
 #undef HN
 #undef IND
-#undef IV
 #undef N
 #undef O
 #undef R
index d2b6e63..045ead5 100644 (file)
@@ -184,6 +184,9 @@ has_arabic_joining (hb_script_t script)
     case HB_SCRIPT_MANICHAEAN:
     case HB_SCRIPT_PSALTER_PAHLAVI:
 
+    /* Unicode-9.0 additions */
+    case HB_SCRIPT_ADLAM:
+
       return true;
 
     default:
@@ -227,12 +230,12 @@ data_destroy_use (void *data)
 enum syllable_type_t {
   independent_cluster,
   virama_terminated_cluster,
-  consonant_cluster,
-  vowel_cluster,
+  standard_cluster,
   number_joiner_terminated_cluster,
   numeral_cluster,
   symbol_cluster,
   broken_cluster,
+  non_cluster,
 };
 
 #include "hb-ot-shape-complex-use-machine.hh"
@@ -312,13 +315,13 @@ setup_topographical_masks (const hb_ot_shape_plan_t *plan,
     {
       case independent_cluster:
       case symbol_cluster:
+      case non_cluster:
        /* These don't join.  Nothing to do. */
        last_form = _NONE;
        break;
 
       case virama_terminated_cluster:
-      case consonant_cluster:
-      case vowel_cluster:
+      case standard_cluster:
       case number_joiner_terminated_cluster:
       case numeral_cluster:
       case broken_cluster:
@@ -421,15 +424,14 @@ reorder_syllable (hb_buffer_t *buffer, unsigned int start, unsigned int end)
   /* Only a few syllable types need reordering. */
   if (unlikely (!(FLAG_SAFE (syllable_type) &
                  (FLAG (virama_terminated_cluster) |
-                  FLAG (consonant_cluster) |
-                  FLAG (vowel_cluster) |
+                  FLAG (standard_cluster) |
                   FLAG (broken_cluster) |
                   0))))
     return;
 
   hb_glyph_info_t *info = buffer->info;
 
-#define BASE_FLAGS (FLAG (USE_B) | FLAG (USE_GB) | FLAG (USE_IV))
+#define BASE_FLAGS (FLAG (USE_B) | FLAG (USE_GB))
 
   /* Move things forward. */
   if (info[start].use_category() == USE_R && end - start > 1)
index d58a695..c45be6f 100644 (file)
@@ -83,7 +83,7 @@ extern "C" void  hb_free_impl(void *ptr);
 #define unlikely(expr) (expr)
 #endif
 
-#ifndef __GNUC__
+#if !defined(__GNUC__) && !defined(__clang__)
 #undef __attribute__
 #define __attribute__(x)
 #endif
index 352d42c..41a4fc5 100644 (file)
@@ -394,8 +394,6 @@ hb_shape_full (hb_font_t          *font,
  * positioned glyphs. If @features is not %NULL, it will be used to control the
  * features applied during shaping.
  *
- * Return value: %FALSE if all shapers failed, %TRUE otherwise
- *
  * Since: 0.9.2
  **/
 void
index b4a5833..a884e3f 100644 (file)
@@ -154,6 +154,12 @@ static const hb_script_t ucdn_script_translate[] =
     HB_SCRIPT_MULTANI,
     HB_SCRIPT_OLD_HUNGARIAN,
     HB_SCRIPT_SIGNWRITING,
+    HB_SCRIPT_ADLAM,
+    HB_SCRIPT_BHAIKSUKI,
+    HB_SCRIPT_MARCHEN,
+    HB_SCRIPT_NEWA,
+    HB_SCRIPT_OSAGE,
+    HB_SCRIPT_TANGUT,
 };
 
 static hb_unicode_combining_class_t
index 2f3c552..fcb97b9 100644 (file)
@@ -1,7 +1,6 @@
 Contents of this directory are derived from UCDN:
 
   https://github.com/grigorig/ucdn
-  https://github.com/behdad/ucdn
 
 The original README follows:
 
index d1a4195..f4e9be1 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdint.h>
 #include "ucdn.h"
 
 typedef struct {
@@ -24,8 +25,8 @@ typedef struct {
     unsigned char bidi_class;
     unsigned char mirrored;
     unsigned char east_asian_width;
-    unsigned char normalization_check;
     unsigned char script;
+    unsigned char linebreak_class;
 } UCDRecord;
 
 typedef struct {
@@ -33,6 +34,11 @@ typedef struct {
 } MirrorPair;
 
 typedef struct {
+  unsigned short from, to;
+  unsigned char type;
+} BracketPair;
+
+typedef struct {
     unsigned int start;
     short count, index;
 } Reindex;
@@ -108,6 +114,24 @@ static int compare_mp(const void *a, const void *b)
     return mpa->from - mpb->from;
 }
 
+static int compare_bp(const void *a, const void *b)
+{
+    BracketPair *bpa = (BracketPair *)a;
+    BracketPair *bpb = (BracketPair *)b;
+    return bpa->from - bpb->from;
+}
+
+static BracketPair *search_bp(uint32_t code)
+{
+    BracketPair bp = {0,0,2};
+    BracketPair *res;
+
+    bp.from = code;
+    res = bsearch(&bp, bracket_pairs, BIDI_BRACKET_LEN, sizeof(BracketPair),
+            compare_bp);
+    return res;
+}
+
 static int hangul_pair_decompose(uint32_t code, uint32_t *a, uint32_t *b)
 {
     int si = code - SBASE;
@@ -199,6 +223,42 @@ int ucdn_get_script(uint32_t code)
     return get_ucd_record(code)->script;
 }
 
+int ucdn_get_linebreak_class(uint32_t code)
+{
+    return get_ucd_record(code)->linebreak_class;
+}
+
+int ucdn_get_resolved_linebreak_class(uint32_t code)
+{
+    const UCDRecord *record = get_ucd_record(code);
+
+    switch (record->linebreak_class)
+    {
+    case UCDN_LINEBREAK_CLASS_AI:
+    case UCDN_LINEBREAK_CLASS_SG:
+    case UCDN_LINEBREAK_CLASS_XX:
+        return UCDN_LINEBREAK_CLASS_AL;
+
+    case UCDN_LINEBREAK_CLASS_SA:
+        if (record->category == UCDN_GENERAL_CATEGORY_MC ||
+                record->category == UCDN_GENERAL_CATEGORY_MN)
+            return UCDN_LINEBREAK_CLASS_CM;
+        return UCDN_LINEBREAK_CLASS_AL;
+
+    case UCDN_LINEBREAK_CLASS_CJ:
+        return UCDN_LINEBREAK_CLASS_NS;
+
+    case UCDN_LINEBREAK_CLASS_CB:
+        return UCDN_LINEBREAK_CLASS_B2;
+
+    case UCDN_LINEBREAK_CLASS_NL:
+        return UCDN_LINEBREAK_CLASS_BK;
+
+    default:
+        return record->linebreak_class;
+    }
+}
+
 uint32_t ucdn_mirror(uint32_t code)
 {
     MirrorPair mp = {0};
@@ -217,6 +277,24 @@ uint32_t ucdn_mirror(uint32_t code)
         return res->to;
 }
 
+uint32_t ucdn_paired_bracket(uint32_t code)
+{
+    BracketPair *res = search_bp(code);
+    if (res == NULL)
+        return code;
+    else
+        return res->to;
+}
+
+int ucdn_paired_bracket_type(uint32_t code)
+{
+    BracketPair *res = search_bp(code);
+    if (res == NULL)
+        return UCDN_BIDI_PAIRED_BRACKET_TYPE_NONE;
+    else
+        return res->type;
+}
+
 int ucdn_decompose(uint32_t code, uint32_t *a, uint32_t *b)
 {
     const unsigned short *rec;
index 8354ae5..f694dc5 100644 (file)
@@ -17,6 +17,8 @@
 #ifndef UCDN_H
 #define UCDN_H
 
+
+
 #if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__)
 # define HB_BEGIN_VISIBILITY _Pragma ("GCC visibility push(hidden)")
 # define HB_END_VISIBILITY _Pragma ("GCC visibility pop")
@@ -58,6 +60,7 @@ typedef unsigned __int64 uint64_t;
 
 #endif
 
+
 #define UCDN_EAST_ASIAN_F 0
 #define UCDN_EAST_ASIAN_H 1
 #define UCDN_EAST_ASIAN_W 2
@@ -197,6 +200,53 @@ typedef unsigned __int64 uint64_t;
 #define UCDN_SCRIPT_MULTANI 129
 #define UCDN_SCRIPT_OLD_HUNGARIAN 130
 #define UCDN_SCRIPT_SIGNWRITING 131
+#define UCDN_SCRIPT_ADLAM 132
+#define UCDN_SCRIPT_BHAIKSUKI 133
+#define UCDN_SCRIPT_MARCHEN 134
+#define UCDN_SCRIPT_NEWA 135
+#define UCDN_SCRIPT_OSAGE 136
+#define UCDN_SCRIPT_TANGUT 137
+
+#define UCDN_LINEBREAK_CLASS_OP 0
+#define UCDN_LINEBREAK_CLASS_CL 1
+#define UCDN_LINEBREAK_CLASS_CP 2
+#define UCDN_LINEBREAK_CLASS_QU 3
+#define UCDN_LINEBREAK_CLASS_GL 4
+#define UCDN_LINEBREAK_CLASS_NS 5
+#define UCDN_LINEBREAK_CLASS_EX 6
+#define UCDN_LINEBREAK_CLASS_SY 7
+#define UCDN_LINEBREAK_CLASS_IS 8
+#define UCDN_LINEBREAK_CLASS_PR 9
+#define UCDN_LINEBREAK_CLASS_PO 10
+#define UCDN_LINEBREAK_CLASS_NU 11
+#define UCDN_LINEBREAK_CLASS_AL 12
+#define UCDN_LINEBREAK_CLASS_HL 13
+#define UCDN_LINEBREAK_CLASS_ID 14
+#define UCDN_LINEBREAK_CLASS_IN 15
+#define UCDN_LINEBREAK_CLASS_HY 16
+#define UCDN_LINEBREAK_CLASS_BA 17
+#define UCDN_LINEBREAK_CLASS_BB 18
+#define UCDN_LINEBREAK_CLASS_B2 19
+#define UCDN_LINEBREAK_CLASS_ZW 20
+#define UCDN_LINEBREAK_CLASS_CM 21
+#define UCDN_LINEBREAK_CLASS_WJ 22
+#define UCDN_LINEBREAK_CLASS_H2 23
+#define UCDN_LINEBREAK_CLASS_H3 24
+#define UCDN_LINEBREAK_CLASS_JL 25
+#define UCDN_LINEBREAK_CLASS_JV 26
+#define UCDN_LINEBREAK_CLASS_JT 27
+#define UCDN_LINEBREAK_CLASS_RI 28
+#define UCDN_LINEBREAK_CLASS_AI 29
+#define UCDN_LINEBREAK_CLASS_BK 30
+#define UCDN_LINEBREAK_CLASS_CB 31
+#define UCDN_LINEBREAK_CLASS_CJ 32
+#define UCDN_LINEBREAK_CLASS_CR 33
+#define UCDN_LINEBREAK_CLASS_LF 34
+#define UCDN_LINEBREAK_CLASS_NL 35
+#define UCDN_LINEBREAK_CLASS_SA 36
+#define UCDN_LINEBREAK_CLASS_SG 37
+#define UCDN_LINEBREAK_CLASS_SP 38
+#define UCDN_LINEBREAK_CLASS_XX 39
 
 #define UCDN_GENERAL_CATEGORY_CC 0
 #define UCDN_GENERAL_CATEGORY_CF 1
@@ -253,6 +303,10 @@ typedef unsigned __int64 uint64_t;
 #define UCDN_BIDI_CLASS_FSI 21
 #define UCDN_BIDI_CLASS_PDI 22
 
+#define UCDN_BIDI_PAIRED_BRACKET_TYPE_OPEN 0
+#define UCDN_BIDI_PAIRED_BRACKET_TYPE_CLOSE 1
+#define UCDN_BIDI_PAIRED_BRACKET_TYPE_NONE 2
+
 /**
  * Return version of the Unicode database.
  *
@@ -302,6 +356,27 @@ int ucdn_get_bidi_class(uint32_t code);
 int ucdn_get_script(uint32_t code);
 
 /**
+ * Get unresolved linebreak class of a codepoint. This does not take
+ * rule LB1 of UAX#14 into account. See ucdn_get_resolved_linebreak_class()
+ * for resolved linebreak classes.
+ *
+ * @param code Unicode codepoint
+ * @return value according to UCDN_LINEBREAK_* and as defined in UAX#14.
+ */
+int ucdn_get_linebreak_class(uint32_t code);
+
+/**
+ * Get resolved linebreak class of a codepoint. This resolves characters
+ * in the AI, SG, XX, SA and CJ classes according to rule LB1 of UAX#14.
+ * In addition the CB class is resolved as the equivalent B2 class and
+ * the NL class is resolved as the equivalent BK class.
+ *
+ * @param code Unicode codepoint
+ * @return value according to UCDN_LINEBREAK_* and as defined in UAX#14.
+ */
+int ucdn_get_resolved_linebreak_class(uint32_t code);
+
+/**
  * Check if codepoint can be mirrored.
  *
  * @param code Unicode codepoint
@@ -319,6 +394,25 @@ int ucdn_get_mirrored(uint32_t code);
 uint32_t ucdn_mirror(uint32_t code);
 
 /**
+ * Get paired bracket for a codepoint.
+ *
+ * @param code Unicode codepoint
+ * @return paired bracket codepoint or the original codepoint if no
+ * paired bracket character exists
+ */
+uint32_t ucdn_paired_bracket(uint32_t code);
+
+/**
+ * Get paired bracket type for a codepoint.
+ *
+ * @param code Unicode codepoint
+ * @return value according to UCDN_BIDI_PAIRED_BRACKET_TYPE_* and as defined
+ * in UAX#9.
+ *
+ */
+int ucdn_paired_bracket_type(uint32_t code);
+
+/**
  * Pairwise canonical decomposition of a codepoint. This includes
  * Hangul Jamo decomposition (see chapter 3.12 of the Unicode core
  * specification).
@@ -359,6 +453,8 @@ int ucdn_compat_decompose(uint32_t code, uint32_t *decomposed);
  */
 int ucdn_compose(uint32_t *code, uint32_t a, uint32_t b);
 
-HB_END_HEADER
+#ifdef __cplusplus
+}
+#endif
 
 #endif
index f458be1..c9cd59b 100644 (file)
 /* this file was generated by makeunicodedata.py 3.2 */
 
-#define UNIDATA_VERSION "8.0.0"
+#define UNIDATA_VERSION "9.0.0"
 /* a list of unique database records */
 static const UCDRecord ucd_records[] = {
-    {2, 0, 18, 0, 5, 0, 102},
-    {0, 0, 14, 0, 5, 0, 0},
-    {0, 0, 16, 0, 5, 0, 0},
-    {0, 0, 15, 0, 5, 0, 0},
-    {0, 0, 17, 0, 5, 0, 0},
-    {29, 0, 17, 0, 3, 0, 0},
-    {21, 0, 18, 0, 3, 0, 0},
-    {21, 0, 10, 0, 3, 0, 0},
-    {23, 0, 10, 0, 3, 0, 0},
+    {2, 0, 18, 0, 5, 102, 41},
+    {0, 0, 14, 0, 5, 0, 21},
+    {0, 0, 16, 0, 5, 0, 17},
+    {0, 0, 15, 0, 5, 0, 35},
+    {0, 0, 16, 0, 5, 0, 30},
+    {0, 0, 17, 0, 5, 0, 30},
+    {0, 0, 15, 0, 5, 0, 33},
+    {0, 0, 15, 0, 5, 0, 21},
+    {0, 0, 16, 0, 5, 0, 21},
+    {29, 0, 17, 0, 3, 0, 40},
+    {21, 0, 18, 0, 3, 0, 6},
+    {21, 0, 18, 0, 3, 0, 3},
+    {21, 0, 10, 0, 3, 0, 12},
+    {23, 0, 10, 0, 3, 0, 9},
+    {21, 0, 10, 0, 3, 0, 10},
+    {21, 0, 18, 0, 3, 0, 12},
     {22, 0, 18, 1, 3, 0, 0},
-    {18, 0, 18, 1, 3, 0, 0},
-    {25, 0, 9, 0, 3, 0, 0},
-    {21, 0, 12, 0, 3, 0, 0},
-    {17, 0, 9, 0, 3, 0, 0},
-    {13, 0, 8, 0, 3, 0, 0},
-    {25, 0, 18, 1, 3, 0, 0},
-    {25, 0, 18, 0, 3, 0, 0},
-    {9, 0, 0, 0, 3, 0, 1},
-    {24, 0, 18, 0, 3, 0, 0},
-    {16, 0, 18, 0, 3, 0, 0},
-    {5, 0, 0, 0, 3, 0, 1},
-    {29, 0, 12, 0, 5, 0, 0},
+    {18, 0, 18, 1, 3, 0, 2},
+    {25, 0, 9, 0, 3, 0, 9},
+    {21, 0, 12, 0, 3, 0, 8},
+    {17, 0, 9, 0, 3, 0, 16},
+    {21, 0, 12, 0, 3, 0, 7},
+    {13, 0, 8, 0, 3, 0, 11},
+    {21, 0, 18, 0, 3, 0, 8},
+    {25, 0, 18, 1, 3, 0, 12},
+    {25, 0, 18, 0, 3, 0, 12},
+    {9, 0, 0, 0, 3, 1, 12},
+    {21, 0, 18, 0, 3, 0, 9},
+    {24, 0, 18, 0, 3, 0, 12},
+    {16, 0, 18, 0, 3, 0, 12},
+    {5, 0, 0, 0, 3, 1, 12},
+    {25, 0, 18, 0, 3, 0, 17},
+    {18, 0, 18, 1, 3, 0, 1},
+    {0, 0, 15, 0, 5, 0, 36},
+    {29, 0, 12, 0, 5, 0, 4},
     {21, 0, 18, 0, 4, 0, 0},
-    {23, 0, 10, 0, 4, 0, 0},
-    {26, 0, 18, 0, 3, 0, 0},
-    {24, 0, 18, 0, 4, 0, 0},
-    {26, 0, 18, 0, 5, 0, 0},
-    {7, 0, 0, 0, 4, 0, 1},
-    {20, 0, 18, 1, 5, 0, 0},
-    {1, 0, 14, 0, 4, 0, 0},
-    {26, 0, 18, 0, 4, 0, 0},
-    {26, 0, 10, 0, 4, 0, 0},
-    {25, 0, 10, 0, 4, 0, 0},
-    {15, 0, 8, 0, 4, 0, 0},
-    {5, 0, 0, 0, 5, 0, 0},
-    {19, 0, 18, 1, 5, 0, 0},
-    {15, 0, 18, 0, 4, 0, 0},
-    {9, 0, 0, 0, 5, 0, 1},
-    {9, 0, 0, 0, 4, 0, 1},
-    {25, 0, 18, 0, 4, 0, 0},
-    {5, 0, 0, 0, 4, 0, 1},
-    {5, 0, 0, 0, 5, 0, 1},
-    {7, 0, 0, 0, 5, 0, 1},
-    {8, 0, 0, 0, 5, 0, 1},
-    {6, 0, 0, 0, 5, 0, 1},
-    {6, 0, 18, 0, 5, 0, 0},
-    {6, 0, 0, 0, 5, 0, 0},
-    {24, 0, 18, 0, 5, 0, 0},
-    {6, 0, 18, 0, 4, 0, 0},
-    {6, 0, 0, 0, 4, 0, 0},
-    {24, 0, 18, 0, 5, 0, 34},
-    {12, 230, 13, 0, 4, 0, 40},
-    {12, 232, 13, 0, 4, 0, 40},
-    {12, 220, 13, 0, 4, 0, 40},
-    {12, 216, 13, 0, 4, 0, 40},
-    {12, 202, 13, 0, 4, 0, 40},
-    {12, 1, 13, 0, 4, 0, 40},
-    {12, 240, 13, 0, 4, 0, 40},
-    {12, 0, 13, 0, 4, 0, 40},
-    {12, 233, 13, 0, 4, 0, 40},
-    {12, 234, 13, 0, 4, 0, 40},
-    {9, 0, 0, 0, 5, 0, 2},
-    {5, 0, 0, 0, 5, 0, 2},
-    {24, 0, 18, 0, 5, 0, 2},
-    {2, 0, 18, 0, 5, 0, 102},
-    {6, 0, 0, 0, 5, 0, 2},
-    {21, 0, 18, 0, 5, 0, 0},
-    {9, 0, 0, 0, 4, 0, 2},
-    {5, 0, 0, 0, 4, 0, 2},
-    {9, 0, 0, 0, 5, 0, 54},
-    {5, 0, 0, 0, 5, 0, 54},
-    {25, 0, 18, 0, 5, 0, 2},
-    {9, 0, 0, 0, 5, 0, 3},
-    {9, 0, 0, 0, 4, 0, 3},
-    {5, 0, 0, 0, 4, 0, 3},
-    {5, 0, 0, 0, 5, 0, 3},
-    {26, 0, 0, 0, 5, 0, 3},
-    {12, 230, 13, 0, 5, 0, 3},
-    {12, 230, 13, 0, 5, 0, 40},
-    {11, 0, 13, 0, 5, 0, 3},
-    {9, 0, 0, 0, 5, 0, 4},
-    {6, 0, 0, 0, 5, 0, 4},
-    {21, 0, 0, 0, 5, 0, 4},
-    {5, 0, 0, 0, 5, 0, 4},
-    {21, 0, 0, 0, 5, 0, 0},
-    {17, 0, 18, 0, 5, 0, 4},
-    {26, 0, 18, 0, 5, 0, 4},
-    {23, 0, 10, 0, 5, 0, 4},
-    {12, 220, 13, 0, 5, 0, 5},
-    {12, 230, 13, 0, 5, 0, 5},
-    {12, 222, 13, 0, 5, 0, 5},
-    {12, 228, 13, 0, 5, 0, 5},
-    {12, 10, 13, 0, 5, 0, 5},
-    {12, 11, 13, 0, 5, 0, 5},
-    {12, 12, 13, 0, 5, 0, 5},
-    {12, 13, 13, 0, 5, 0, 5},
-    {12, 14, 13, 0, 5, 0, 5},
-    {12, 15, 13, 0, 5, 0, 5},
-    {12, 16, 13, 0, 5, 0, 5},
-    {12, 17, 13, 0, 5, 0, 5},
-    {12, 18, 13, 0, 5, 0, 5},
-    {12, 19, 13, 0, 5, 0, 5},
-    {12, 20, 13, 0, 5, 0, 5},
-    {12, 21, 13, 0, 5, 0, 5},
-    {12, 22, 13, 0, 5, 0, 5},
-    {17, 0, 3, 0, 5, 0, 5},
-    {12, 23, 13, 0, 5, 0, 5},
-    {21, 0, 3, 0, 5, 0, 5},
-    {12, 24, 13, 0, 5, 0, 5},
-    {12, 25, 13, 0, 5, 0, 5},
-    {7, 0, 3, 0, 5, 0, 5},
-    {1, 0, 11, 0, 5, 0, 6},
-    {1, 0, 11, 0, 5, 0, 0},
-    {25, 0, 18, 0, 5, 0, 6},
-    {25, 0, 4, 0, 5, 0, 6},
-    {21, 0, 10, 0, 5, 0, 6},
-    {23, 0, 4, 0, 5, 0, 6},
-    {21, 0, 12, 0, 5, 0, 0},
+    {23, 0, 10, 0, 3, 0, 10},
+    {23, 0, 10, 0, 4, 0, 9},
+    {26, 0, 18, 0, 3, 0, 12},
+    {21, 0, 18, 0, 4, 0, 29},
+    {24, 0, 18, 0, 4, 0, 29},
+    {26, 0, 18, 0, 5, 0, 12},
+    {7, 0, 0, 0, 4, 1, 29},
+    {20, 0, 18, 1, 5, 0, 3},
+    {1, 0, 14, 0, 4, 0, 17},
+    {26, 0, 18, 0, 4, 0, 12},
+    {26, 0, 10, 0, 4, 0, 10},
+    {25, 0, 10, 0, 4, 0, 9},
+    {15, 0, 8, 0, 4, 0, 29},
+    {24, 0, 18, 0, 4, 0, 18},
+    {5, 0, 0, 0, 5, 0, 12},
+    {19, 0, 18, 1, 5, 0, 3},
+    {15, 0, 18, 0, 4, 0, 29},
+    {9, 0, 0, 0, 5, 1, 12},
+    {9, 0, 0, 0, 4, 1, 12},
+    {25, 0, 18, 0, 4, 0, 29},
+    {5, 0, 0, 0, 4, 1, 12},
+    {5, 0, 0, 0, 5, 1, 12},
+    {7, 0, 0, 0, 5, 1, 12},
+    {8, 0, 0, 0, 5, 1, 12},
+    {6, 0, 0, 0, 5, 1, 12},
+    {6, 0, 18, 0, 5, 0, 12},
+    {6, 0, 0, 0, 5, 0, 12},
+    {24, 0, 18, 0, 5, 0, 12},
+    {24, 0, 18, 0, 4, 0, 12},
+    {6, 0, 18, 0, 4, 0, 29},
+    {6, 0, 18, 0, 5, 0, 18},
+    {6, 0, 0, 0, 4, 0, 29},
+    {24, 0, 18, 0, 5, 34, 12},
+    {12, 230, 13, 0, 4, 40, 21},
+    {12, 232, 13, 0, 4, 40, 21},
+    {12, 220, 13, 0, 4, 40, 21},
+    {12, 216, 13, 0, 4, 40, 21},
+    {12, 202, 13, 0, 4, 40, 21},
+    {12, 1, 13, 0, 4, 40, 21},
+    {12, 240, 13, 0, 4, 40, 21},
+    {12, 0, 13, 0, 4, 40, 4},
+    {12, 233, 13, 0, 4, 40, 4},
+    {12, 234, 13, 0, 4, 40, 4},
+    {9, 0, 0, 0, 5, 2, 12},
+    {5, 0, 0, 0, 5, 2, 12},
+    {24, 0, 18, 0, 5, 2, 12},
+    {2, 0, 18, 0, 5, 102, 41},
+    {6, 0, 0, 0, 5, 2, 12},
+    {21, 0, 18, 0, 5, 0, 8},
+    {21, 0, 18, 0, 5, 0, 12},
+    {9, 0, 0, 0, 4, 2, 12},
+    {5, 0, 0, 0, 4, 2, 12},
+    {9, 0, 0, 0, 5, 54, 12},
+    {5, 0, 0, 0, 5, 54, 12},
+    {25, 0, 18, 0, 5, 2, 12},
+    {9, 0, 0, 0, 5, 3, 12},
+    {9, 0, 0, 0, 4, 3, 12},
+    {5, 0, 0, 0, 4, 3, 12},
+    {5, 0, 0, 0, 5, 3, 12},
+    {26, 0, 0, 0, 5, 3, 12},
+    {12, 230, 13, 0, 5, 3, 21},
+    {12, 230, 13, 0, 5, 40, 21},
+    {11, 0, 13, 0, 5, 3, 21},
+    {9, 0, 0, 0, 5, 4, 12},
+    {6, 0, 0, 0, 5, 4, 12},
+    {21, 0, 0, 0, 5, 4, 12},
+    {5, 0, 0, 0, 5, 4, 12},
+    {21, 0, 0, 0, 5, 0, 8},
+    {17, 0, 18, 0, 5, 4, 17},
+    {26, 0, 18, 0, 5, 4, 12},
+    {23, 0, 10, 0, 5, 4, 9},
+    {12, 220, 13, 0, 5, 5, 21},
+    {12, 230, 13, 0, 5, 5, 21},
+    {12, 222, 13, 0, 5, 5, 21},
+    {12, 228, 13, 0, 5, 5, 21},
+    {12, 10, 13, 0, 5, 5, 21},
+    {12, 11, 13, 0, 5, 5, 21},
+    {12, 12, 13, 0, 5, 5, 21},
+    {12, 13, 13, 0, 5, 5, 21},
+    {12, 14, 13, 0, 5, 5, 21},
+    {12, 15, 13, 0, 5, 5, 21},
+    {12, 16, 13, 0, 5, 5, 21},
+    {12, 17, 13, 0, 5, 5, 21},
+    {12, 18, 13, 0, 5, 5, 21},
+    {12, 19, 13, 0, 5, 5, 21},
+    {12, 20, 13, 0, 5, 5, 21},
+    {12, 21, 13, 0, 5, 5, 21},
+    {12, 22, 13, 0, 5, 5, 21},
+    {17, 0, 3, 0, 5, 5, 17},
+    {12, 23, 13, 0, 5, 5, 21},
+    {21, 0, 3, 0, 5, 5, 12},
+    {12, 24, 13, 0, 5, 5, 21},
+    {12, 25, 13, 0, 5, 5, 21},
+    {21, 0, 3, 0, 5, 5, 6},
+    {7, 0, 3, 0, 5, 5, 13},
+    {1, 0, 11, 0, 5, 6, 12},
+    {1, 0, 11, 0, 5, 0, 12},
+    {25, 0, 18, 0, 5, 6, 12},
+    {25, 0, 4, 0, 5, 6, 12},
+    {21, 0, 10, 0, 5, 6, 10},
+    {23, 0, 4, 0, 5, 6, 10},
+    {21, 0, 12, 0, 5, 0, 8},
+    {21, 0, 4, 0, 5, 6, 8},
+    {26, 0, 18, 0, 5, 6, 12},
+    {12, 230, 13, 0, 5, 6, 21},
+    {12, 30, 13, 0, 5, 6, 21},
+    {12, 31, 13, 0, 5, 6, 21},
+    {12, 32, 13, 0, 5, 6, 21},
     {21, 0, 4, 0, 5, 0, 6},
-    {26, 0, 18, 0, 5, 0, 6},
-    {12, 230, 13, 0, 5, 0, 6},
-    {12, 30, 13, 0, 5, 0, 6},
-    {12, 31, 13, 0, 5, 0, 6},
-    {12, 32, 13, 0, 5, 0, 6},
-    {21, 0, 4, 0, 5, 0, 0},
-    {1, 0, 4, 0, 5, 0, 0},
-    {7, 0, 4, 0, 5, 0, 6},
-    {6, 0, 4, 0, 5, 0, 0},
-    {12, 27, 13, 0, 5, 0, 40},
-    {12, 28, 13, 0, 5, 0, 40},
-    {12, 29, 13, 0, 5, 0, 40},
-    {12, 30, 13, 0, 5, 0, 40},
-    {12, 31, 13, 0, 5, 0, 40},
-    {12, 32, 13, 0, 5, 0, 40},
-    {12, 33, 13, 0, 5, 0, 40},
-    {12, 34, 13, 0, 5, 0, 40},
-    {12, 220, 13, 0, 5, 0, 40},
-    {12, 220, 13, 0, 5, 0, 6},
-    {13, 0, 11, 0, 5, 0, 6},
-    {21, 0, 11, 0, 5, 0, 6},
-    {12, 35, 13, 0, 5, 0, 40},
-    {6, 0, 4, 0, 5, 0, 6},
-    {13, 0, 8, 0, 5, 0, 6},
-    {26, 0, 4, 0, 5, 0, 6},
-    {21, 0, 4, 0, 5, 0, 7},
-    {1, 0, 4, 0, 5, 0, 7},
-    {7, 0, 4, 0, 5, 0, 7},
-    {12, 36, 13, 0, 5, 0, 7},
-    {12, 230, 13, 0, 5, 0, 7},
-    {12, 220, 13, 0, 5, 0, 7},
-    {7, 0, 4, 0, 5, 0, 8},
-    {12, 0, 13, 0, 5, 0, 8},
-    {13, 0, 3, 0, 5, 0, 65},
-    {7, 0, 3, 0, 5, 0, 65},
-    {12, 230, 13, 0, 5, 0, 65},
-    {12, 220, 13, 0, 5, 0, 65},
-    {6, 0, 3, 0, 5, 0, 65},
-    {26, 0, 18, 0, 5, 0, 65},
-    {21, 0, 18, 0, 5, 0, 65},
-    {7, 0, 3, 0, 5, 0, 81},
-    {12, 230, 13, 0, 5, 0, 81},
-    {6, 0, 3, 0, 5, 0, 81},
-    {21, 0, 3, 0, 5, 0, 81},
-    {7, 0, 3, 0, 5, 0, 94},
-    {12, 220, 13, 0, 5, 0, 94},
-    {21, 0, 3, 0, 5, 0, 94},
-    {12, 27, 13, 0, 5, 0, 6},
-    {12, 28, 13, 0, 5, 0, 6},
-    {12, 29, 13, 0, 5, 0, 6},
-    {12, 0, 13, 0, 5, 0, 9},
-    {10, 0, 0, 0, 5, 0, 9},
-    {7, 0, 0, 0, 5, 0, 9},
-    {12, 7, 13, 0, 5, 0, 9},
-    {12, 9, 13, 0, 5, 0, 9},
-    {12, 230, 13, 0, 5, 0, 9},
-    {13, 0, 0, 0, 5, 0, 9},
-    {21, 0, 0, 0, 5, 0, 9},
-    {6, 0, 0, 0, 5, 0, 9},
-    {7, 0, 0, 0, 5, 0, 10},
-    {12, 0, 13, 0, 5, 0, 10},
-    {10, 0, 0, 0, 5, 0, 10},
-    {12, 7, 13, 0, 5, 0, 10},
-    {12, 9, 13, 0, 5, 0, 10},
-    {13, 0, 0, 0, 5, 0, 10},
-    {23, 0, 10, 0, 5, 0, 10},
-    {15, 0, 0, 0, 5, 0, 10},
-    {26, 0, 0, 0, 5, 0, 10},
-    {12, 0, 13, 0, 5, 0, 11},
-    {10, 0, 0, 0, 5, 0, 11},
-    {7, 0, 0, 0, 5, 0, 11},
-    {12, 7, 13, 0, 5, 0, 11},
-    {12, 9, 13, 0, 5, 0, 11},
-    {13, 0, 0, 0, 5, 0, 11},
-    {12, 0, 13, 0, 5, 0, 12},
-    {10, 0, 0, 0, 5, 0, 12},
-    {7, 0, 0, 0, 5, 0, 12},
-    {12, 7, 13, 0, 5, 0, 12},
-    {12, 9, 13, 0, 5, 0, 12},
-    {13, 0, 0, 0, 5, 0, 12},
+    {1, 0, 4, 0, 5, 0, 21},
+    {21, 0, 4, 0, 5, 6, 6},
+    {7, 0, 4, 0, 5, 6, 12},
+    {6, 0, 4, 0, 5, 0, 12},
+    {12, 27, 13, 0, 5, 40, 21},
+    {12, 28, 13, 0, 5, 40, 21},
+    {12, 29, 13, 0, 5, 40, 21},
+    {12, 30, 13, 0, 5, 40, 21},
+    {12, 31, 13, 0, 5, 40, 21},
+    {12, 32, 13, 0, 5, 40, 21},
+    {12, 33, 13, 0, 5, 40, 21},
+    {12, 34, 13, 0, 5, 40, 21},
+    {12, 220, 13, 0, 5, 40, 21},
+    {12, 220, 13, 0, 5, 6, 21},
+    {13, 0, 11, 0, 5, 6, 11},
+    {21, 0, 11, 0, 5, 6, 11},
+    {21, 0, 4, 0, 5, 6, 12},
+    {12, 35, 13, 0, 5, 40, 21},
+    {6, 0, 4, 0, 5, 6, 12},
+    {13, 0, 8, 0, 5, 6, 11},
+    {26, 0, 4, 0, 5, 6, 12},
+    {21, 0, 4, 0, 5, 7, 12},
+    {1, 0, 4, 0, 5, 7, 12},
+    {7, 0, 4, 0, 5, 7, 12},
+    {12, 36, 13, 0, 5, 7, 21},
+    {12, 230, 13, 0, 5, 7, 21},
+    {12, 220, 13, 0, 5, 7, 21},
+    {7, 0, 4, 0, 5, 8, 12},
+    {12, 0, 13, 0, 5, 8, 21},
+    {13, 0, 3, 0, 5, 65, 11},
+    {7, 0, 3, 0, 5, 65, 12},
+    {12, 230, 13, 0, 5, 65, 21},
+    {12, 220, 13, 0, 5, 65, 21},
+    {6, 0, 3, 0, 5, 65, 12},
+    {26, 0, 18, 0, 5, 65, 12},
+    {21, 0, 18, 0, 5, 65, 12},
+    {21, 0, 18, 0, 5, 65, 8},
+    {21, 0, 18, 0, 5, 65, 6},
+    {7, 0, 3, 0, 5, 81, 12},
+    {12, 230, 13, 0, 5, 81, 21},
+    {6, 0, 3, 0, 5, 81, 12},
+    {21, 0, 3, 0, 5, 81, 12},
+    {7, 0, 3, 0, 5, 94, 12},
+    {12, 220, 13, 0, 5, 94, 21},
+    {21, 0, 3, 0, 5, 94, 12},
+    {12, 27, 13, 0, 5, 6, 21},
+    {12, 28, 13, 0, 5, 6, 21},
+    {12, 29, 13, 0, 5, 6, 21},
+    {12, 0, 13, 0, 5, 9, 21},
+    {10, 0, 0, 0, 5, 9, 21},
+    {7, 0, 0, 0, 5, 9, 12},
+    {12, 7, 13, 0, 5, 9, 21},
+    {12, 9, 13, 0, 5, 9, 21},
+    {12, 230, 13, 0, 5, 9, 21},
+    {21, 0, 0, 0, 5, 0, 17},
+    {13, 0, 0, 0, 5, 9, 11},
+    {21, 0, 0, 0, 5, 9, 12},
+    {6, 0, 0, 0, 5, 9, 12},
+    {7, 0, 0, 0, 5, 10, 12},
+    {12, 0, 13, 0, 5, 10, 21},
+    {10, 0, 0, 0, 5, 10, 21},
+    {12, 7, 13, 0, 5, 10, 21},
+    {12, 9, 13, 0, 5, 10, 21},
+    {13, 0, 0, 0, 5, 10, 11},
+    {23, 0, 10, 0, 5, 10, 10},
+    {15, 0, 0, 0, 5, 10, 12},
+    {15, 0, 0, 0, 5, 10, 10},
+    {26, 0, 0, 0, 5, 10, 12},
+    {23, 0, 10, 0, 5, 10, 9},
+    {12, 0, 13, 0, 5, 11, 21},
+    {10, 0, 0, 0, 5, 11, 21},
+    {7, 0, 0, 0, 5, 11, 12},
+    {12, 7, 13, 0, 5, 11, 21},
+    {12, 9, 13, 0, 5, 11, 21},
+    {13, 0, 0, 0, 5, 11, 11},
+    {12, 0, 13, 0, 5, 12, 21},
+    {10, 0, 0, 0, 5, 12, 21},
+    {7, 0, 0, 0, 5, 12, 12},
+    {12, 7, 13, 0, 5, 12, 21},
+    {12, 9, 13, 0, 5, 12, 21},
+    {13, 0, 0, 0, 5, 12, 11},
+    {21, 0, 0, 0, 5, 12, 12},
+    {23, 0, 10, 0, 5, 12, 9},
+    {12, 0, 13, 0, 5, 13, 21},
+    {10, 0, 0, 0, 5, 13, 21},
+    {7, 0, 0, 0, 5, 13, 12},
+    {12, 7, 13, 0, 5, 13, 21},
+    {12, 9, 13, 0, 5, 13, 21},
+    {13, 0, 0, 0, 5, 13, 11},
+    {26, 0, 0, 0, 5, 13, 12},
+    {15, 0, 0, 0, 5, 13, 12},
+    {12, 0, 13, 0, 5, 14, 21},
+    {7, 0, 0, 0, 5, 14, 12},
+    {10, 0, 0, 0, 5, 14, 21},
+    {12, 9, 13, 0, 5, 14, 21},
+    {13, 0, 0, 0, 5, 14, 11},
+    {15, 0, 0, 0, 5, 14, 12},
+    {26, 0, 18, 0, 5, 14, 12},
+    {23, 0, 10, 0, 5, 14, 9},
+    {12, 0, 13, 0, 5, 15, 21},
+    {10, 0, 0, 0, 5, 15, 21},
+    {7, 0, 0, 0, 5, 15, 12},
+    {12, 9, 13, 0, 5, 15, 21},
+    {12, 84, 13, 0, 5, 15, 21},
+    {12, 91, 13, 0, 5, 15, 21},
+    {13, 0, 0, 0, 5, 15, 11},
+    {15, 0, 18, 0, 5, 15, 12},
+    {26, 0, 0, 0, 5, 15, 12},
+    {7, 0, 0, 0, 5, 16, 12},
+    {12, 0, 13, 0, 5, 16, 21},
+    {10, 0, 0, 0, 5, 16, 21},
+    {12, 7, 13, 0, 5, 16, 21},
+    {12, 0, 0, 0, 5, 16, 21},
+    {12, 9, 13, 0, 5, 16, 21},
+    {13, 0, 0, 0, 5, 16, 11},
+    {12, 0, 13, 0, 5, 17, 21},
+    {10, 0, 0, 0, 5, 17, 21},
+    {7, 0, 0, 0, 5, 17, 12},
+    {12, 9, 13, 0, 5, 17, 21},
+    {26, 0, 0, 0, 5, 17, 12},
+    {15, 0, 0, 0, 5, 17, 12},
+    {13, 0, 0, 0, 5, 17, 11},
+    {26, 0, 0, 0, 5, 17, 10},
+    {10, 0, 0, 0, 5, 18, 21},
+    {7, 0, 0, 0, 5, 18, 12},
+    {12, 9, 13, 0, 5, 18, 21},
+    {12, 0, 13, 0, 5, 18, 21},
+    {13, 0, 0, 0, 5, 18, 11},
+    {21, 0, 0, 0, 5, 18, 12},
+    {7, 0, 0, 0, 5, 19, 38},
+    {12, 0, 13, 0, 5, 19, 38},
+    {12, 103, 13, 0, 5, 19, 38},
+    {12, 9, 13, 0, 5, 19, 38},
+    {23, 0, 10, 0, 5, 0, 9},
+    {6, 0, 0, 0, 5, 19, 38},
+    {12, 107, 13, 0, 5, 19, 38},
+    {21, 0, 0, 0, 5, 19, 12},
+    {13, 0, 0, 0, 5, 19, 11},
+    {21, 0, 0, 0, 5, 19, 17},
+    {7, 0, 0, 0, 5, 20, 38},
+    {12, 0, 13, 0, 5, 20, 38},
+    {12, 118, 13, 0, 5, 20, 38},
+    {6, 0, 0, 0, 5, 20, 38},
+    {12, 122, 13, 0, 5, 20, 38},
+    {13, 0, 0, 0, 5, 20, 11},
+    {7, 0, 0, 0, 5, 21, 12},
+    {26, 0, 0, 0, 5, 21, 18},
+    {21, 0, 0, 0, 5, 21, 18},
+    {21, 0, 0, 0, 5, 21, 12},
+    {21, 0, 0, 0, 5, 21, 4},
+    {21, 0, 0, 0, 5, 21, 17},
+    {21, 0, 0, 0, 5, 21, 6},
+    {26, 0, 0, 0, 5, 21, 12},
+    {12, 220, 13, 0, 5, 21, 21},
+    {13, 0, 0, 0, 5, 21, 11},
+    {15, 0, 0, 0, 5, 21, 12},
+    {26, 0, 0, 0, 5, 21, 17},
+    {12, 216, 13, 0, 5, 21, 21},
+    {22, 0, 18, 1, 5, 21, 0},
+    {18, 0, 18, 1, 5, 21, 1},
+    {10, 0, 0, 0, 5, 21, 21},
+    {12, 129, 13, 0, 5, 21, 21},
+    {12, 130, 13, 0, 5, 21, 21},
+    {12, 0, 13, 0, 5, 21, 21},
+    {12, 132, 13, 0, 5, 21, 21},
+    {10, 0, 0, 0, 5, 21, 17},
+    {12, 230, 13, 0, 5, 21, 21},
+    {12, 9, 13, 0, 5, 21, 21},
+    {26, 0, 0, 0, 5, 0, 12},
+    {7, 0, 0, 0, 5, 22, 38},
+    {10, 0, 0, 0, 5, 22, 38},
+    {12, 0, 13, 0, 5, 22, 38},
+    {12, 7, 13, 0, 5, 22, 38},
+    {12, 9, 13, 0, 5, 22, 38},
+    {13, 0, 0, 0, 5, 22, 11},
+    {21, 0, 0, 0, 5, 22, 17},
+    {21, 0, 0, 0, 5, 22, 12},
+    {12, 220, 13, 0, 5, 22, 38},
+    {26, 0, 0, 0, 5, 22, 38},
+    {9, 0, 0, 0, 5, 23, 12},
+    {7, 0, 0, 0, 5, 23, 12},
     {21, 0, 0, 0, 5, 0, 12},
-    {23, 0, 10, 0, 5, 0, 12},
-    {12, 0, 13, 0, 5, 0, 13},
-    {10, 0, 0, 0, 5, 0, 13},
-    {7, 0, 0, 0, 5, 0, 13},
-    {12, 7, 13, 0, 5, 0, 13},
-    {12, 9, 13, 0, 5, 0, 13},
-    {13, 0, 0, 0, 5, 0, 13},
-    {26, 0, 0, 0, 5, 0, 13},
-    {15, 0, 0, 0, 5, 0, 13},
-    {12, 0, 13, 0, 5, 0, 14},
-    {7, 0, 0, 0, 5, 0, 14},
-    {10, 0, 0, 0, 5, 0, 14},
-    {12, 9, 13, 0, 5, 0, 14},
-    {13, 0, 0, 0, 5, 0, 14},
-    {15, 0, 0, 0, 5, 0, 14},
-    {26, 0, 18, 0, 5, 0, 14},
-    {23, 0, 10, 0, 5, 0, 14},
-    {12, 0, 13, 0, 5, 0, 15},
-    {10, 0, 0, 0, 5, 0, 15},
-    {7, 0, 0, 0, 5, 0, 15},
-    {12, 9, 13, 0, 5, 0, 15},
-    {12, 84, 13, 0, 5, 0, 15},
-    {12, 91, 13, 0, 5, 0, 15},
-    {13, 0, 0, 0, 5, 0, 15},
-    {15, 0, 18, 0, 5, 0, 15},
-    {26, 0, 0, 0, 5, 0, 15},
-    {12, 0, 13, 0, 5, 0, 16},
-    {10, 0, 0, 0, 5, 0, 16},
-    {7, 0, 0, 0, 5, 0, 16},
-    {12, 7, 13, 0, 5, 0, 16},
-    {12, 0, 0, 0, 5, 0, 16},
-    {12, 9, 13, 0, 5, 0, 16},
-    {13, 0, 0, 0, 5, 0, 16},
-    {12, 0, 13, 0, 5, 0, 17},
-    {10, 0, 0, 0, 5, 0, 17},
-    {7, 0, 0, 0, 5, 0, 17},
-    {12, 9, 13, 0, 5, 0, 17},
-    {13, 0, 0, 0, 5, 0, 17},
-    {15, 0, 0, 0, 5, 0, 17},
-    {26, 0, 0, 0, 5, 0, 17},
-    {10, 0, 0, 0, 5, 0, 18},
-    {7, 0, 0, 0, 5, 0, 18},
-    {12, 9, 13, 0, 5, 0, 18},
-    {12, 0, 13, 0, 5, 0, 18},
-    {13, 0, 0, 0, 5, 0, 18},
-    {21, 0, 0, 0, 5, 0, 18},
-    {7, 0, 0, 0, 5, 0, 19},
-    {12, 0, 13, 0, 5, 0, 19},
-    {12, 103, 13, 0, 5, 0, 19},
-    {12, 9, 13, 0, 5, 0, 19},
-    {23, 0, 10, 0, 5, 0, 0},
-    {6, 0, 0, 0, 5, 0, 19},
-    {12, 107, 13, 0, 5, 0, 19},
-    {21, 0, 0, 0, 5, 0, 19},
-    {13, 0, 0, 0, 5, 0, 19},
-    {7, 0, 0, 0, 5, 0, 20},
-    {12, 0, 13, 0, 5, 0, 20},
-    {12, 118, 13, 0, 5, 0, 20},
-    {6, 0, 0, 0, 5, 0, 20},
-    {12, 122, 13, 0, 5, 0, 20},
-    {13, 0, 0, 0, 5, 0, 20},
-    {7, 0, 0, 0, 5, 0, 21},
-    {26, 0, 0, 0, 5, 0, 21},
-    {21, 0, 0, 0, 5, 0, 21},
-    {12, 220, 13, 0, 5, 0, 21},
-    {13, 0, 0, 0, 5, 0, 21},
-    {15, 0, 0, 0, 5, 0, 21},
-    {12, 216, 13, 0, 5, 0, 21},
-    {22, 0, 18, 1, 5, 0, 21},
-    {18, 0, 18, 1, 5, 0, 21},
+    {6, 0, 0, 0, 5, 23, 12},
+    {7, 0, 0, 0, 2, 24, 25},
+    {7, 0, 0, 0, 5, 24, 26},
+    {7, 0, 0, 0, 5, 24, 27},
+    {7, 0, 0, 0, 5, 25, 12},
+    {12, 230, 13, 0, 5, 25, 21},
+    {21, 0, 0, 0, 5, 25, 12},
+    {21, 0, 0, 0, 5, 25, 17},
+    {15, 0, 0, 0, 5, 25, 12},
+    {26, 0, 18, 0, 5, 25, 12},
+    {9, 0, 0, 0, 5, 26, 12},
+    {5, 0, 0, 0, 5, 26, 12},
+    {17, 0, 18, 0, 5, 27, 17},
+    {7, 0, 0, 0, 5, 27, 12},
+    {21, 0, 0, 0, 5, 27, 12},
+    {29, 0, 17, 0, 5, 28, 17},
+    {7, 0, 0, 0, 5, 28, 12},
+    {22, 0, 18, 1, 5, 28, 0},
+    {18, 0, 18, 1, 5, 28, 1},
+    {7, 0, 0, 0, 5, 29, 12},
+    {14, 0, 0, 0, 5, 29, 12},
+    {7, 0, 0, 0, 5, 41, 12},
+    {12, 0, 13, 0, 5, 41, 21},
+    {12, 9, 13, 0, 5, 41, 21},
+    {7, 0, 0, 0, 5, 42, 12},
+    {12, 0, 13, 0, 5, 42, 21},
+    {12, 9, 13, 0, 5, 42, 21},
+    {7, 0, 0, 0, 5, 43, 12},
+    {12, 0, 13, 0, 5, 43, 21},
+    {7, 0, 0, 0, 5, 44, 12},
+    {12, 0, 13, 0, 5, 44, 21},
+    {7, 0, 0, 0, 5, 30, 38},
+    {12, 0, 13, 0, 5, 30, 38},
+    {10, 0, 0, 0, 5, 30, 38},
+    {12, 9, 13, 0, 5, 30, 38},
+    {21, 0, 0, 0, 5, 30, 17},
+    {21, 0, 0, 0, 5, 30, 5},
+    {6, 0, 0, 0, 5, 30, 38},
+    {21, 0, 0, 0, 5, 30, 12},
+    {23, 0, 10, 0, 5, 30, 9},
+    {12, 230, 13, 0, 5, 30, 38},
+    {13, 0, 0, 0, 5, 30, 11},
+    {15, 0, 18, 0, 5, 30, 12},
+    {21, 0, 18, 0, 5, 31, 12},
+    {21, 0, 18, 0, 5, 0, 6},
+    {21, 0, 18, 0, 5, 31, 17},
+    {21, 0, 18, 0, 5, 0, 17},
+    {17, 0, 18, 0, 5, 31, 18},
+    {21, 0, 18, 0, 5, 31, 6},
+    {12, 0, 13, 0, 5, 31, 21},
+    {1, 0, 14, 0, 5, 31, 4},
+    {13, 0, 0, 0, 5, 31, 11},
+    {7, 0, 0, 0, 5, 31, 12},
+    {6, 0, 0, 0, 5, 31, 12},
+    {12, 228, 13, 0, 5, 31, 21},
+    {7, 0, 0, 0, 5, 45, 12},
+    {12, 0, 13, 0, 5, 45, 21},
+    {10, 0, 0, 0, 5, 45, 21},
+    {12, 222, 13, 0, 5, 45, 21},
+    {12, 230, 13, 0, 5, 45, 21},
+    {12, 220, 13, 0, 5, 45, 21},
+    {26, 0, 18, 0, 5, 45, 12},
+    {21, 0, 18, 0, 5, 45, 6},
+    {13, 0, 0, 0, 5, 45, 11},
+    {7, 0, 0, 0, 5, 46, 38},
+    {7, 0, 0, 0, 5, 55, 38},
+    {13, 0, 0, 0, 5, 55, 11},
+    {15, 0, 0, 0, 5, 55, 38},
+    {26, 0, 18, 0, 5, 55, 38},
+    {26, 0, 18, 0, 5, 30, 12},
+    {7, 0, 0, 0, 5, 53, 12},
+    {12, 230, 13, 0, 5, 53, 21},
+    {12, 220, 13, 0, 5, 53, 21},
+    {10, 0, 0, 0, 5, 53, 21},
+    {12, 0, 13, 0, 5, 53, 21},
+    {21, 0, 0, 0, 5, 53, 12},
+    {7, 0, 0, 0, 5, 77, 38},
+    {10, 0, 0, 0, 5, 77, 38},
+    {12, 0, 13, 0, 5, 77, 38},
+    {12, 9, 13, 0, 5, 77, 38},
+    {12, 230, 13, 0, 5, 77, 38},
+    {12, 220, 13, 0, 5, 77, 21},
+    {13, 0, 0, 0, 5, 77, 11},
+    {21, 0, 0, 0, 5, 77, 38},
+    {6, 0, 0, 0, 5, 77, 38},
+    {11, 0, 13, 0, 5, 40, 21},
+    {12, 0, 13, 0, 5, 61, 21},
+    {10, 0, 0, 0, 5, 61, 21},
+    {7, 0, 0, 0, 5, 61, 12},
+    {12, 7, 13, 0, 5, 61, 21},
+    {10, 9, 0, 0, 5, 61, 21},
+    {13, 0, 0, 0, 5, 61, 11},
+    {21, 0, 0, 0, 5, 61, 17},
+    {21, 0, 0, 0, 5, 61, 12},
+    {26, 0, 0, 0, 5, 61, 12},
+    {12, 230, 13, 0, 5, 61, 21},
+    {12, 220, 13, 0, 5, 61, 21},
+    {12, 0, 13, 0, 5, 66, 21},
+    {10, 0, 0, 0, 5, 66, 21},
+    {7, 0, 0, 0, 5, 66, 12},
+    {10, 9, 0, 0, 5, 66, 21},
+    {12, 9, 13, 0, 5, 66, 21},
+    {13, 0, 0, 0, 5, 66, 11},
+    {7, 0, 0, 0, 5, 92, 12},
+    {12, 7, 13, 0, 5, 92, 21},
+    {10, 0, 0, 0, 5, 92, 21},
+    {12, 0, 13, 0, 5, 92, 21},
+    {10, 9, 0, 0, 5, 92, 21},
+    {21, 0, 0, 0, 5, 92, 12},
+    {7, 0, 0, 0, 5, 67, 12},
+    {10, 0, 0, 0, 5, 67, 21},
+    {12, 0, 13, 0, 5, 67, 21},
+    {12, 7, 13, 0, 5, 67, 21},
+    {21, 0, 0, 0, 5, 67, 17},
+    {13, 0, 0, 0, 5, 67, 11},
+    {13, 0, 0, 0, 5, 68, 11},
+    {7, 0, 0, 0, 5, 68, 12},
+    {6, 0, 0, 0, 5, 68, 12},
+    {21, 0, 0, 0, 5, 68, 17},
+    {21, 0, 0, 0, 5, 66, 12},
+    {12, 1, 13, 0, 5, 40, 21},
     {10, 0, 0, 0, 5, 0, 21},
-    {12, 129, 13, 0, 5, 0, 21},
-    {12, 130, 13, 0, 5, 0, 21},
-    {12, 0, 13, 0, 5, 0, 21},
-    {12, 132, 13, 0, 5, 0, 21},
-    {12, 230, 13, 0, 5, 0, 21},
-    {12, 9, 13, 0, 5, 0, 21},
-    {26, 0, 0, 0, 5, 0, 0},
-    {7, 0, 0, 0, 5, 0, 22},
-    {10, 0, 0, 0, 5, 0, 22},
-    {12, 0, 13, 0, 5, 0, 22},
-    {12, 7, 13, 0, 5, 0, 22},
-    {12, 9, 13, 0, 5, 0, 22},
-    {13, 0, 0, 0, 5, 0, 22},
-    {21, 0, 0, 0, 5, 0, 22},
-    {12, 220, 13, 0, 5, 0, 22},
-    {26, 0, 0, 0, 5, 0, 22},
-    {9, 0, 0, 0, 5, 0, 23},
-    {7, 0, 0, 0, 5, 0, 23},
-    {6, 0, 0, 0, 5, 0, 23},
-    {7, 0, 0, 0, 2, 0, 24},
-    {7, 0, 0, 0, 5, 0, 24},
-    {7, 0, 0, 0, 5, 0, 25},
-    {12, 230, 13, 0, 5, 0, 25},
-    {21, 0, 0, 0, 5, 0, 25},
-    {15, 0, 0, 0, 5, 0, 25},
-    {26, 0, 18, 0, 5, 0, 25},
-    {9, 0, 0, 0, 5, 0, 26},
-    {5, 0, 0, 0, 5, 0, 26},
-    {17, 0, 18, 0, 5, 0, 27},
-    {7, 0, 0, 0, 5, 0, 27},
-    {21, 0, 0, 0, 5, 0, 27},
-    {29, 0, 17, 0, 5, 0, 28},
-    {7, 0, 0, 0, 5, 0, 28},
-    {22, 0, 18, 1, 5, 0, 28},
-    {18, 0, 18, 1, 5, 0, 28},
-    {7, 0, 0, 0, 5, 0, 29},
-    {14, 0, 0, 0, 5, 0, 29},
-    {7, 0, 0, 0, 5, 0, 41},
-    {12, 0, 13, 0, 5, 0, 41},
-    {12, 9, 13, 0, 5, 0, 41},
-    {7, 0, 0, 0, 5, 0, 42},
-    {12, 0, 13, 0, 5, 0, 42},
-    {12, 9, 13, 0, 5, 0, 42},
-    {7, 0, 0, 0, 5, 0, 43},
-    {12, 0, 13, 0, 5, 0, 43},
-    {7, 0, 0, 0, 5, 0, 44},
-    {12, 0, 13, 0, 5, 0, 44},
-    {7, 0, 0, 0, 5, 0, 30},
-    {12, 0, 13, 0, 5, 0, 30},
-    {10, 0, 0, 0, 5, 0, 30},
-    {12, 9, 13, 0, 5, 0, 30},
-    {21, 0, 0, 0, 5, 0, 30},
-    {6, 0, 0, 0, 5, 0, 30},
-    {23, 0, 10, 0, 5, 0, 30},
-    {12, 230, 13, 0, 5, 0, 30},
-    {13, 0, 0, 0, 5, 0, 30},
-    {15, 0, 18, 0, 5, 0, 30},
-    {21, 0, 18, 0, 5, 0, 31},
-    {17, 0, 18, 0, 5, 0, 31},
-    {12, 0, 13, 0, 5, 0, 31},
-    {1, 0, 14, 0, 5, 0, 31},
-    {13, 0, 0, 0, 5, 0, 31},
-    {7, 0, 0, 0, 5, 0, 31},
-    {6, 0, 0, 0, 5, 0, 31},
-    {12, 228, 13, 0, 5, 0, 31},
-    {7, 0, 0, 0, 5, 0, 45},
-    {12, 0, 13, 0, 5, 0, 45},
-    {10, 0, 0, 0, 5, 0, 45},
-    {12, 222, 13, 0, 5, 0, 45},
-    {12, 230, 13, 0, 5, 0, 45},
-    {12, 220, 13, 0, 5, 0, 45},
-    {26, 0, 18, 0, 5, 0, 45},
-    {21, 0, 18, 0, 5, 0, 45},
-    {13, 0, 0, 0, 5, 0, 45},
-    {7, 0, 0, 0, 5, 0, 46},
-    {7, 0, 0, 0, 5, 0, 55},
-    {13, 0, 0, 0, 5, 0, 55},
-    {15, 0, 0, 0, 5, 0, 55},
-    {26, 0, 18, 0, 5, 0, 55},
-    {26, 0, 18, 0, 5, 0, 30},
-    {7, 0, 0, 0, 5, 0, 53},
-    {12, 230, 13, 0, 5, 0, 53},
-    {12, 220, 13, 0, 5, 0, 53},
-    {10, 0, 0, 0, 5, 0, 53},
-    {12, 0, 13, 0, 5, 0, 53},
-    {21, 0, 0, 0, 5, 0, 53},
-    {7, 0, 0, 0, 5, 0, 77},
-    {10, 0, 0, 0, 5, 0, 77},
-    {12, 0, 13, 0, 5, 0, 77},
-    {12, 9, 13, 0, 5, 0, 77},
-    {12, 230, 13, 0, 5, 0, 77},
-    {12, 220, 13, 0, 5, 0, 77},
-    {13, 0, 0, 0, 5, 0, 77},
-    {21, 0, 0, 0, 5, 0, 77},
-    {6, 0, 0, 0, 5, 0, 77},
-    {11, 0, 13, 0, 5, 0, 40},
-    {12, 0, 13, 0, 5, 0, 61},
-    {10, 0, 0, 0, 5, 0, 61},
-    {7, 0, 0, 0, 5, 0, 61},
-    {12, 7, 13, 0, 5, 0, 61},
-    {10, 9, 0, 0, 5, 0, 61},
-    {13, 0, 0, 0, 5, 0, 61},
-    {21, 0, 0, 0, 5, 0, 61},
-    {26, 0, 0, 0, 5, 0, 61},
-    {12, 230, 13, 0, 5, 0, 61},
-    {12, 220, 13, 0, 5, 0, 61},
-    {12, 0, 13, 0, 5, 0, 66},
-    {10, 0, 0, 0, 5, 0, 66},
-    {7, 0, 0, 0, 5, 0, 66},
-    {10, 9, 0, 0, 5, 0, 66},
-    {12, 9, 13, 0, 5, 0, 66},
-    {13, 0, 0, 0, 5, 0, 66},
-    {7, 0, 0, 0, 5, 0, 92},
-    {12, 7, 13, 0, 5, 0, 92},
-    {10, 0, 0, 0, 5, 0, 92},
-    {12, 0, 13, 0, 5, 0, 92},
-    {10, 9, 0, 0, 5, 0, 92},
-    {21, 0, 0, 0, 5, 0, 92},
-    {7, 0, 0, 0, 5, 0, 67},
-    {10, 0, 0, 0, 5, 0, 67},
-    {12, 0, 13, 0, 5, 0, 67},
-    {12, 7, 13, 0, 5, 0, 67},
-    {21, 0, 0, 0, 5, 0, 67},
-    {13, 0, 0, 0, 5, 0, 67},
-    {13, 0, 0, 0, 5, 0, 68},
-    {7, 0, 0, 0, 5, 0, 68},
-    {6, 0, 0, 0, 5, 0, 68},
-    {21, 0, 0, 0, 5, 0, 68},
-    {21, 0, 0, 0, 5, 0, 66},
-    {12, 1, 13, 0, 5, 0, 40},
-    {10, 0, 0, 0, 5, 0, 0},
-    {7, 0, 0, 0, 5, 0, 0},
-    {6, 0, 0, 0, 5, 0, 3},
-    {12, 234, 13, 0, 5, 0, 40},
-    {12, 214, 13, 0, 5, 0, 40},
-    {12, 202, 13, 0, 5, 0, 40},
-    {12, 233, 13, 0, 5, 0, 40},
-    {8, 0, 0, 0, 5, 0, 2},
-    {29, 0, 17, 0, 5, 0, 0},
-    {1, 0, 14, 0, 5, 0, 0},
-    {1, 0, 14, 0, 5, 0, 40},
-    {1, 0, 0, 0, 5, 0, 0},
-    {1, 0, 3, 0, 5, 0, 0},
-    {17, 0, 18, 0, 4, 0, 0},
-    {17, 0, 18, 0, 5, 0, 0},
-    {20, 0, 18, 0, 4, 0, 0},
-    {19, 0, 18, 0, 4, 0, 0},
+    {7, 0, 0, 0, 5, 0, 12},
+    {6, 0, 0, 0, 5, 3, 12},
+    {12, 234, 13, 0, 5, 40, 21},
+    {12, 214, 13, 0, 5, 40, 21},
+    {12, 202, 13, 0, 5, 40, 21},
+    {12, 233, 13, 0, 5, 40, 21},
+    {8, 0, 0, 0, 5, 2, 12},
+    {24, 0, 18, 0, 5, 2, 18},
+    {29, 0, 17, 0, 5, 0, 17},
+    {29, 0, 17, 0, 5, 0, 4},
+    {1, 0, 14, 0, 5, 0, 20},
+    {1, 0, 14, 0, 5, 40, 21},
+    {1, 0, 14, 0, 5, 40, 41},
+    {1, 0, 0, 0, 5, 0, 21},
+    {1, 0, 3, 0, 5, 0, 21},
+    {17, 0, 18, 0, 4, 0, 17},
+    {17, 0, 18, 0, 5, 0, 4},
+    {17, 0, 18, 0, 5, 0, 17},
+    {17, 0, 18, 0, 4, 0, 19},
+    {17, 0, 18, 0, 4, 0, 29},
+    {20, 0, 18, 0, 4, 0, 3},
+    {19, 0, 18, 0, 4, 0, 3},
     {22, 0, 18, 0, 5, 0, 0},
-    {20, 0, 18, 0, 5, 0, 0},
-    {27, 0, 17, 0, 5, 0, 0},
-    {28, 0, 15, 0, 5, 0, 0},
-    {1, 0, 1, 0, 5, 0, 0},
-    {1, 0, 5, 0, 5, 0, 0},
-    {1, 0, 7, 0, 5, 0, 0},
-    {1, 0, 2, 0, 5, 0, 0},
-    {1, 0, 6, 0, 5, 0, 0},
-    {21, 0, 10, 0, 4, 0, 0},
-    {21, 0, 10, 0, 5, 0, 0},
-    {16, 0, 18, 0, 5, 0, 0},
-    {25, 0, 12, 0, 5, 0, 0},
+    {20, 0, 18, 0, 5, 0, 3},
+    {21, 0, 18, 0, 4, 0, 12},
+    {21, 0, 18, 0, 4, 0, 15},
+    {21, 0, 18, 0, 4, 0, 17},
+    {27, 0, 17, 0, 5, 0, 30},
+    {28, 0, 15, 0, 5, 0, 30},
+    {1, 0, 1, 0, 5, 0, 21},
+    {1, 0, 5, 0, 5, 0, 21},
+    {1, 0, 7, 0, 5, 0, 21},
+    {1, 0, 2, 0, 5, 0, 21},
+    {1, 0, 6, 0, 5, 0, 21},
+    {21, 0, 10, 0, 4, 0, 10},
+    {21, 0, 10, 0, 5, 0, 10},
+    {21, 0, 18, 0, 4, 0, 10},
+    {21, 0, 18, 0, 5, 0, 10},
+    {21, 0, 18, 0, 5, 0, 5},
+    {16, 0, 18, 0, 5, 0, 12},
+    {25, 0, 12, 0, 5, 0, 8},
     {22, 0, 18, 1, 5, 0, 0},
-    {18, 0, 18, 1, 5, 0, 0},
-    {25, 0, 18, 0, 5, 0, 0},
-    {1, 0, 19, 0, 5, 0, 0},
-    {1, 0, 20, 0, 5, 0, 0},
-    {1, 0, 21, 0, 5, 0, 0},
-    {1, 0, 22, 0, 5, 0, 0},
-    {15, 0, 8, 0, 5, 0, 0},
-    {25, 0, 9, 0, 5, 0, 0},
-    {6, 0, 0, 0, 4, 0, 1},
-    {23, 0, 10, 0, 1, 0, 0},
-    {9, 0, 0, 0, 5, 0, 0},
-    {5, 0, 0, 0, 4, 0, 0},
-    {26, 0, 10, 0, 5, 0, 0},
-    {25, 0, 18, 1, 5, 0, 0},
-    {15, 0, 18, 0, 5, 0, 0},
-    {14, 0, 0, 0, 4, 0, 1},
-    {14, 0, 0, 0, 5, 0, 1},
-    {25, 0, 18, 1, 4, 0, 0},
-    {25, 0, 10, 0, 5, 0, 0},
+    {18, 0, 18, 1, 5, 0, 1},
+    {25, 0, 18, 0, 5, 0, 12},
+    {1, 0, 14, 0, 5, 0, 22},
+    {1, 0, 14, 0, 5, 0, 12},
+    {1, 0, 19, 0, 5, 0, 21},
+    {1, 0, 20, 0, 5, 0, 21},
+    {1, 0, 21, 0, 5, 0, 21},
+    {1, 0, 22, 0, 5, 0, 21},
+    {1, 0, 14, 0, 5, 0, 21},
+    {15, 0, 8, 0, 5, 0, 12},
+    {25, 0, 9, 0, 5, 0, 12},
+    {6, 0, 0, 0, 4, 1, 29},
+    {23, 0, 10, 0, 5, 0, 10},
+    {23, 0, 10, 0, 1, 0, 9},
+    {2, 0, 18, 0, 5, 102, 9},
+    {9, 0, 0, 0, 5, 0, 12},
+    {26, 0, 18, 0, 4, 0, 10},
+    {26, 0, 18, 0, 4, 0, 29},
+    {5, 0, 0, 0, 4, 0, 29},
+    {26, 0, 18, 0, 4, 0, 9},
+    {9, 0, 0, 0, 4, 1, 29},
+    {26, 0, 10, 0, 5, 0, 12},
+    {25, 0, 18, 1, 5, 0, 12},
+    {15, 0, 18, 0, 5, 0, 12},
+    {15, 0, 18, 0, 4, 0, 12},
+    {15, 0, 18, 0, 5, 0, 29},
+    {14, 0, 0, 0, 4, 1, 29},
+    {14, 0, 0, 0, 5, 1, 12},
+    {25, 0, 18, 1, 4, 0, 29},
+    {25, 0, 9, 0, 5, 0, 9},
+    {25, 0, 10, 0, 5, 0, 9},
+    {25, 0, 18, 0, 5, 0, 15},
+    {26, 0, 18, 0, 2, 0, 14},
     {22, 0, 18, 1, 2, 0, 0},
-    {18, 0, 18, 1, 2, 0, 0},
-    {26, 0, 0, 0, 4, 0, 0},
-    {26, 0, 0, 0, 5, 0, 52},
-    {9, 0, 0, 0, 5, 0, 56},
-    {5, 0, 0, 0, 5, 0, 56},
-    {26, 0, 18, 0, 5, 0, 54},
-    {12, 230, 13, 0, 5, 0, 54},
-    {21, 0, 18, 0, 5, 0, 54},
-    {15, 0, 18, 0, 5, 0, 54},
-    {5, 0, 0, 0, 5, 0, 23},
-    {7, 0, 0, 0, 5, 0, 57},
-    {6, 0, 0, 0, 5, 0, 57},
-    {21, 0, 0, 0, 5, 0, 57},
-    {12, 9, 13, 0, 5, 0, 57},
-    {26, 0, 18, 0, 2, 0, 35},
-    {26, 0, 18, 0, 2, 0, 0},
-    {29, 0, 17, 0, 0, 0, 0},
-    {21, 0, 18, 0, 2, 0, 0},
-    {6, 0, 0, 0, 2, 0, 35},
-    {7, 0, 0, 0, 2, 0, 0},
-    {14, 0, 0, 0, 2, 0, 35},
-    {17, 0, 18, 0, 2, 0, 0},
+    {18, 0, 18, 1, 2, 0, 1},
+    {26, 0, 18, 0, 2, 0, 12},
+    {26, 0, 18, 0, 5, 0, 14},
+    {26, 0, 0, 0, 4, 0, 29},
+    {26, 0, 18, 0, 5, 0, 29},
+    {25, 0, 18, 0, 2, 0, 12},
+    {26, 0, 18, 0, 4, 0, 14},
+    {26, 0, 18, 0, 5, 0, 41},
+    {26, 0, 18, 0, 4, 0, 41},
+    {26, 0, 18, 0, 2, 0, 41},
+    {26, 0, 18, 0, 2, 0, 29},
+    {26, 0, 18, 0, 5, 0, 3},
+    {26, 0, 18, 0, 5, 0, 6},
+    {26, 0, 0, 0, 5, 52, 12},
+    {9, 0, 0, 0, 5, 56, 12},
+    {5, 0, 0, 0, 5, 56, 12},
+    {26, 0, 18, 0, 5, 54, 12},
+    {12, 230, 13, 0, 5, 54, 21},
+    {21, 0, 18, 0, 5, 54, 6},
+    {21, 0, 18, 0, 5, 54, 17},
+    {15, 0, 18, 0, 5, 54, 12},
+    {5, 0, 0, 0, 5, 23, 12},
+    {7, 0, 0, 0, 5, 57, 12},
+    {6, 0, 0, 0, 5, 57, 12},
+    {21, 0, 0, 0, 5, 57, 17},
+    {12, 9, 13, 0, 5, 57, 21},
+    {21, 0, 18, 0, 5, 0, 3},
+    {21, 0, 18, 0, 5, 0, 0},
+    {17, 0, 18, 0, 5, 0, 12},
+    {17, 0, 18, 0, 5, 0, 19},
+    {26, 0, 18, 0, 2, 35, 14},
+    {29, 0, 17, 0, 0, 0, 17},
+    {21, 0, 18, 0, 2, 0, 1},
+    {21, 0, 18, 0, 2, 0, 14},
+    {6, 0, 0, 0, 2, 35, 5},
+    {7, 0, 0, 0, 2, 0, 14},
+    {14, 0, 0, 0, 2, 35, 14},
+    {17, 0, 18, 0, 2, 0, 5},
     {22, 0, 18, 0, 2, 0, 0},
-    {18, 0, 18, 0, 2, 0, 0},
-    {12, 218, 13, 0, 2, 0, 40},
-    {12, 228, 13, 0, 2, 0, 40},
-    {12, 232, 13, 0, 2, 0, 40},
-    {12, 222, 13, 0, 2, 0, 40},
-    {10, 224, 0, 0, 2, 0, 24},
-    {6, 0, 0, 0, 2, 0, 0},
-    {7, 0, 0, 0, 2, 0, 32},
-    {12, 8, 13, 0, 2, 0, 40},
-    {24, 0, 18, 0, 2, 0, 0},
+    {18, 0, 18, 0, 2, 0, 1},
+    {12, 218, 13, 0, 2, 40, 21},
+    {12, 228, 13, 0, 2, 40, 21},
+    {12, 232, 13, 0, 2, 40, 21},
+    {12, 222, 13, 0, 2, 40, 21},
+    {10, 224, 0, 0, 2, 24, 21},
+    {17, 0, 18, 0, 2, 0, 14},
+    {6, 0, 0, 0, 2, 0, 14},
+    {6, 0, 0, 0, 2, 0, 21},
+    {7, 0, 0, 0, 2, 0, 5},
+    {7, 0, 0, 0, 2, 32, 32},
+    {7, 0, 0, 0, 2, 32, 14},
+    {12, 8, 13, 0, 2, 40, 21},
+    {24, 0, 18, 0, 2, 0, 5},
+    {6, 0, 0, 0, 2, 32, 5},
+    {7, 0, 0, 0, 2, 33, 32},
+    {7, 0, 0, 0, 2, 33, 14},
+    {21, 0, 18, 0, 2, 0, 5},
     {6, 0, 0, 0, 2, 0, 32},
-    {7, 0, 0, 0, 2, 0, 33},
-    {6, 0, 0, 0, 2, 0, 33},
-    {7, 0, 0, 0, 2, 0, 34},
-    {26, 0, 0, 0, 2, 0, 0},
-    {15, 0, 0, 0, 2, 0, 0},
-    {26, 0, 0, 0, 2, 0, 24},
-    {26, 0, 18, 0, 2, 0, 24},
-    {15, 0, 0, 0, 4, 0, 0},
-    {15, 0, 18, 0, 2, 0, 0},
-    {26, 0, 0, 0, 2, 0, 33},
-    {7, 0, 0, 0, 2, 0, 35},
-    {2, 0, 18, 0, 2, 0, 102},
-    {7, 0, 0, 0, 2, 0, 36},
-    {6, 0, 0, 0, 2, 0, 36},
-    {26, 0, 18, 0, 2, 0, 36},
-    {7, 0, 0, 0, 5, 0, 82},
-    {6, 0, 0, 0, 5, 0, 82},
-    {21, 0, 0, 0, 5, 0, 82},
-    {7, 0, 0, 0, 5, 0, 69},
-    {6, 0, 0, 0, 5, 0, 69},
-    {21, 0, 18, 0, 5, 0, 69},
-    {13, 0, 0, 0, 5, 0, 69},
-    {7, 0, 0, 0, 5, 0, 3},
-    {21, 0, 18, 0, 5, 0, 3},
-    {6, 0, 18, 0, 5, 0, 3},
-    {7, 0, 0, 0, 5, 0, 83},
-    {14, 0, 0, 0, 5, 0, 83},
-    {12, 230, 13, 0, 5, 0, 83},
-    {21, 0, 0, 0, 5, 0, 83},
-    {24, 0, 0, 0, 5, 0, 0},
-    {7, 0, 0, 0, 5, 0, 58},
-    {12, 0, 13, 0, 5, 0, 58},
-    {12, 9, 13, 0, 5, 0, 58},
-    {10, 0, 0, 0, 5, 0, 58},
-    {26, 0, 18, 0, 5, 0, 58},
-    {15, 0, 0, 0, 5, 0, 0},
-    {7, 0, 0, 0, 5, 0, 64},
-    {21, 0, 18, 0, 5, 0, 64},
-    {10, 0, 0, 0, 5, 0, 70},
-    {7, 0, 0, 0, 5, 0, 70},
-    {12, 9, 13, 0, 5, 0, 70},
-    {21, 0, 0, 0, 5, 0, 70},
-    {13, 0, 0, 0, 5, 0, 70},
-    {13, 0, 0, 0, 5, 0, 71},
-    {7, 0, 0, 0, 5, 0, 71},
-    {12, 0, 13, 0, 5, 0, 71},
-    {12, 220, 13, 0, 5, 0, 71},
-    {21, 0, 0, 0, 5, 0, 71},
-    {7, 0, 0, 0, 5, 0, 72},
-    {12, 0, 13, 0, 5, 0, 72},
-    {10, 0, 0, 0, 5, 0, 72},
-    {10, 9, 0, 0, 5, 0, 72},
-    {21, 0, 0, 0, 5, 0, 72},
-    {12, 0, 13, 0, 5, 0, 84},
-    {10, 0, 0, 0, 5, 0, 84},
-    {7, 0, 0, 0, 5, 0, 84},
-    {12, 7, 13, 0, 5, 0, 84},
-    {10, 9, 0, 0, 5, 0, 84},
-    {21, 0, 0, 0, 5, 0, 84},
-    {13, 0, 0, 0, 5, 0, 84},
-    {6, 0, 0, 0, 5, 0, 22},
-    {7, 0, 0, 0, 5, 0, 76},
-    {12, 0, 13, 0, 5, 0, 76},
-    {10, 0, 0, 0, 5, 0, 76},
-    {13, 0, 0, 0, 5, 0, 76},
-    {21, 0, 0, 0, 5, 0, 76},
-    {7, 0, 0, 0, 5, 0, 78},
-    {12, 230, 13, 0, 5, 0, 78},
-    {12, 220, 13, 0, 5, 0, 78},
-    {6, 0, 0, 0, 5, 0, 78},
-    {21, 0, 0, 0, 5, 0, 78},
-    {7, 0, 0, 0, 5, 0, 85},
-    {10, 0, 0, 0, 5, 0, 85},
-    {12, 0, 13, 0, 5, 0, 85},
-    {21, 0, 0, 0, 5, 0, 85},
-    {6, 0, 0, 0, 5, 0, 85},
-    {12, 9, 13, 0, 5, 0, 85},
-    {13, 0, 0, 0, 5, 0, 85},
-    {4, 0, 0, 0, 5, 0, 102},
-    {3, 0, 0, 0, 4, 0, 102},
-    {12, 26, 13, 0, 5, 0, 5},
-    {25, 0, 9, 0, 5, 0, 5},
-    {24, 0, 4, 0, 5, 0, 6},
-    {18, 0, 18, 0, 5, 0, 0},
-    {16, 0, 18, 0, 2, 0, 0},
-    {21, 0, 12, 0, 2, 0, 0},
-    {21, 0, 10, 0, 2, 0, 0},
-    {25, 0, 9, 0, 2, 0, 0},
-    {17, 0, 9, 0, 2, 0, 0},
-    {25, 0, 18, 1, 2, 0, 0},
-    {25, 0, 18, 0, 2, 0, 0},
-    {23, 0, 10, 0, 2, 0, 0},
-    {21, 0, 18, 0, 0, 0, 0},
-    {21, 0, 10, 0, 0, 0, 0},
-    {23, 0, 10, 0, 0, 0, 0},
+    {6, 0, 0, 0, 2, 33, 5},
+    {7, 0, 0, 0, 2, 34, 14},
+    {7, 0, 0, 0, 2, 24, 14},
+    {26, 0, 0, 0, 2, 0, 14},
+    {15, 0, 0, 0, 2, 0, 14},
+    {26, 0, 0, 0, 2, 24, 14},
+    {26, 0, 18, 0, 2, 24, 14},
+    {15, 0, 0, 0, 4, 0, 29},
+    {15, 0, 18, 0, 2, 0, 14},
+    {26, 0, 0, 0, 2, 33, 14},
+    {7, 0, 0, 0, 2, 35, 14},
+    {2, 0, 18, 0, 2, 102, 14},
+    {7, 0, 0, 0, 2, 36, 14},
+    {6, 0, 0, 0, 2, 36, 5},
+    {26, 0, 18, 0, 2, 36, 14},
+    {7, 0, 0, 0, 5, 82, 12},
+    {6, 0, 0, 0, 5, 82, 12},
+    {21, 0, 0, 0, 5, 82, 17},
+    {7, 0, 0, 0, 5, 69, 12},
+    {6, 0, 0, 0, 5, 69, 12},
+    {21, 0, 18, 0, 5, 69, 17},
+    {21, 0, 18, 0, 5, 69, 6},
+    {13, 0, 0, 0, 5, 69, 11},
+    {7, 0, 0, 0, 5, 3, 12},
+    {21, 0, 18, 0, 5, 3, 12},
+    {6, 0, 18, 0, 5, 3, 12},
+    {7, 0, 0, 0, 5, 83, 12},
+    {14, 0, 0, 0, 5, 83, 12},
+    {12, 230, 13, 0, 5, 83, 21},
+    {21, 0, 0, 0, 5, 83, 12},
+    {21, 0, 0, 0, 5, 83, 17},
+    {24, 0, 0, 0, 5, 0, 12},
+    {7, 0, 0, 0, 5, 58, 12},
+    {12, 0, 13, 0, 5, 58, 21},
+    {12, 9, 13, 0, 5, 58, 21},
+    {10, 0, 0, 0, 5, 58, 21},
+    {26, 0, 18, 0, 5, 58, 12},
+    {15, 0, 0, 0, 5, 0, 12},
+    {7, 0, 0, 0, 5, 64, 12},
+    {21, 0, 18, 0, 5, 64, 18},
+    {21, 0, 18, 0, 5, 64, 6},
+    {10, 0, 0, 0, 5, 70, 21},
+    {7, 0, 0, 0, 5, 70, 12},
+    {12, 9, 13, 0, 5, 70, 21},
+    {12, 0, 13, 0, 5, 70, 21},
+    {21, 0, 0, 0, 5, 70, 17},
+    {13, 0, 0, 0, 5, 70, 11},
+    {21, 0, 0, 0, 5, 9, 18},
+    {13, 0, 0, 0, 5, 71, 11},
+    {7, 0, 0, 0, 5, 71, 12},
+    {12, 0, 13, 0, 5, 71, 21},
+    {12, 220, 13, 0, 5, 71, 21},
+    {21, 0, 0, 0, 5, 71, 17},
+    {7, 0, 0, 0, 5, 72, 12},
+    {12, 0, 13, 0, 5, 72, 21},
+    {10, 0, 0, 0, 5, 72, 21},
+    {10, 9, 0, 0, 5, 72, 21},
+    {21, 0, 0, 0, 5, 72, 12},
+    {12, 0, 13, 0, 5, 84, 21},
+    {10, 0, 0, 0, 5, 84, 21},
+    {7, 0, 0, 0, 5, 84, 12},
+    {12, 7, 13, 0, 5, 84, 21},
+    {10, 9, 0, 0, 5, 84, 21},
+    {21, 0, 0, 0, 5, 84, 12},
+    {21, 0, 0, 0, 5, 84, 17},
+    {13, 0, 0, 0, 5, 84, 11},
+    {6, 0, 0, 0, 5, 22, 38},
+    {7, 0, 0, 0, 5, 76, 12},
+    {12, 0, 13, 0, 5, 76, 21},
+    {10, 0, 0, 0, 5, 76, 21},
+    {13, 0, 0, 0, 5, 76, 11},
+    {21, 0, 0, 0, 5, 76, 12},
+    {21, 0, 0, 0, 5, 76, 17},
+    {7, 0, 0, 0, 5, 78, 38},
+    {12, 230, 13, 0, 5, 78, 38},
+    {12, 220, 13, 0, 5, 78, 38},
+    {6, 0, 0, 0, 5, 78, 38},
+    {21, 0, 0, 0, 5, 78, 38},
+    {7, 0, 0, 0, 5, 85, 12},
+    {10, 0, 0, 0, 5, 85, 21},
+    {12, 0, 13, 0, 5, 85, 21},
+    {21, 0, 0, 0, 5, 85, 17},
+    {6, 0, 0, 0, 5, 85, 12},
+    {12, 9, 13, 0, 5, 85, 21},
+    {13, 0, 0, 0, 5, 85, 11},
+    {7, 0, 0, 0, 2, 24, 23},
+    {7, 0, 0, 0, 2, 24, 24},
+    {4, 0, 0, 0, 5, 102, 39},
+    {3, 0, 0, 0, 4, 102, 41},
+    {12, 26, 13, 0, 5, 5, 21},
+    {25, 0, 9, 0, 5, 5, 12},
+    {24, 0, 4, 0, 5, 6, 12},
+    {18, 0, 18, 0, 5, 0, 1},
+    {12, 0, 13, 0, 4, 40, 21},
+    {21, 0, 18, 0, 2, 0, 8},
+    {21, 0, 18, 0, 2, 0, 6},
+    {21, 0, 18, 0, 2, 0, 15},
+    {16, 0, 18, 0, 2, 0, 14},
+    {21, 0, 12, 0, 2, 0, 1},
+    {21, 0, 12, 0, 2, 0, 5},
+    {21, 0, 10, 0, 2, 0, 14},
+    {25, 0, 9, 0, 2, 0, 14},
+    {17, 0, 9, 0, 2, 0, 14},
+    {25, 0, 18, 1, 2, 0, 14},
+    {25, 0, 18, 0, 2, 0, 14},
+    {23, 0, 10, 0, 2, 0, 9},
+    {21, 0, 10, 0, 2, 0, 10},
+    {21, 0, 18, 0, 0, 0, 6},
+    {21, 0, 18, 0, 0, 0, 14},
+    {21, 0, 10, 0, 0, 0, 14},
+    {23, 0, 10, 0, 0, 0, 9},
+    {21, 0, 10, 0, 0, 0, 10},
     {22, 0, 18, 1, 0, 0, 0},
-    {18, 0, 18, 1, 0, 0, 0},
-    {25, 0, 9, 0, 0, 0, 0},
-    {21, 0, 12, 0, 0, 0, 0},
-    {17, 0, 9, 0, 0, 0, 0},
-    {13, 0, 8, 0, 0, 0, 0},
-    {25, 0, 18, 1, 0, 0, 0},
-    {25, 0, 18, 0, 0, 0, 0},
-    {9, 0, 0, 0, 0, 0, 1},
-    {24, 0, 18, 0, 0, 0, 0},
-    {16, 0, 18, 0, 0, 0, 0},
-    {5, 0, 0, 0, 0, 0, 1},
-    {21, 0, 18, 0, 1, 0, 0},
+    {18, 0, 18, 1, 0, 0, 1},
+    {25, 0, 9, 0, 0, 0, 14},
+    {21, 0, 12, 0, 0, 0, 1},
+    {17, 0, 9, 0, 0, 0, 14},
+    {21, 0, 12, 0, 0, 0, 14},
+    {13, 0, 8, 0, 0, 0, 14},
+    {21, 0, 12, 0, 0, 0, 5},
+    {21, 0, 18, 0, 0, 0, 5},
+    {25, 0, 18, 1, 0, 0, 14},
+    {25, 0, 18, 0, 0, 0, 14},
+    {9, 0, 0, 0, 0, 1, 14},
+    {24, 0, 18, 0, 0, 0, 14},
+    {16, 0, 18, 0, 0, 0, 14},
+    {5, 0, 0, 0, 0, 1, 14},
+    {21, 0, 18, 0, 1, 0, 1},
     {22, 0, 18, 1, 1, 0, 0},
-    {18, 0, 18, 1, 1, 0, 0},
-    {7, 0, 0, 0, 1, 0, 33},
-    {6, 0, 0, 0, 1, 0, 0},
-    {7, 0, 0, 0, 1, 0, 24},
-    {26, 0, 18, 0, 0, 0, 0},
-    {26, 0, 18, 0, 1, 0, 0},
-    {25, 0, 18, 0, 1, 0, 0},
-    {1, 0, 18, 0, 5, 0, 0},
-    {7, 0, 0, 0, 5, 0, 47},
-    {14, 0, 18, 0, 5, 0, 2},
-    {15, 0, 18, 0, 5, 0, 2},
-    {26, 0, 18, 0, 5, 0, 2},
-    {7, 0, 0, 0, 5, 0, 73},
-    {7, 0, 0, 0, 5, 0, 74},
-    {7, 0, 0, 0, 5, 0, 37},
-    {15, 0, 0, 0, 5, 0, 37},
-    {7, 0, 0, 0, 5, 0, 38},
-    {14, 0, 0, 0, 5, 0, 38},
-    {7, 0, 0, 0, 5, 0, 118},
-    {12, 230, 13, 0, 5, 0, 118},
-    {7, 0, 0, 0, 5, 0, 48},
-    {21, 0, 0, 0, 5, 0, 48},
-    {7, 0, 0, 0, 5, 0, 59},
-    {21, 0, 0, 0, 5, 0, 59},
-    {14, 0, 0, 0, 5, 0, 59},
-    {9, 0, 0, 0, 5, 0, 39},
-    {5, 0, 0, 0, 5, 0, 39},
-    {7, 0, 0, 0, 5, 0, 49},
-    {7, 0, 0, 0, 5, 0, 50},
-    {13, 0, 0, 0, 5, 0, 50},
-    {7, 0, 0, 0, 5, 0, 106},
-    {7, 0, 0, 0, 5, 0, 104},
-    {21, 0, 0, 0, 5, 0, 104},
-    {7, 0, 0, 0, 5, 0, 110},
-    {7, 0, 3, 0, 5, 0, 51},
-    {7, 0, 3, 0, 5, 0, 86},
-    {21, 0, 3, 0, 5, 0, 86},
-    {15, 0, 3, 0, 5, 0, 86},
-    {7, 0, 3, 0, 5, 0, 120},
-    {26, 0, 3, 0, 5, 0, 120},
-    {15, 0, 3, 0, 5, 0, 120},
-    {7, 0, 3, 0, 5, 0, 116},
-    {15, 0, 3, 0, 5, 0, 116},
-    {7, 0, 3, 0, 5, 0, 128},
-    {15, 0, 3, 0, 5, 0, 128},
-    {7, 0, 3, 0, 5, 0, 63},
-    {15, 0, 3, 0, 5, 0, 63},
-    {21, 0, 18, 0, 5, 0, 63},
-    {7, 0, 3, 0, 5, 0, 75},
-    {21, 0, 3, 0, 5, 0, 75},
-    {7, 0, 3, 0, 5, 0, 97},
-    {7, 0, 3, 0, 5, 0, 96},
-    {15, 0, 3, 0, 5, 0, 96},
-    {7, 0, 3, 0, 5, 0, 60},
-    {12, 0, 13, 0, 5, 0, 60},
-    {12, 220, 13, 0, 5, 0, 60},
-    {12, 230, 13, 0, 5, 0, 60},
-    {12, 1, 13, 0, 5, 0, 60},
-    {12, 9, 13, 0, 5, 0, 60},
-    {15, 0, 3, 0, 5, 0, 60},
-    {21, 0, 3, 0, 5, 0, 60},
-    {7, 0, 3, 0, 5, 0, 87},
-    {15, 0, 3, 0, 5, 0, 87},
-    {21, 0, 3, 0, 5, 0, 87},
-    {7, 0, 3, 0, 5, 0, 117},
-    {15, 0, 3, 0, 5, 0, 117},
-    {7, 0, 3, 0, 5, 0, 112},
-    {26, 0, 3, 0, 5, 0, 112},
-    {12, 230, 13, 0, 5, 0, 112},
-    {12, 220, 13, 0, 5, 0, 112},
-    {15, 0, 3, 0, 5, 0, 112},
-    {21, 0, 3, 0, 5, 0, 112},
-    {7, 0, 3, 0, 5, 0, 79},
-    {21, 0, 18, 0, 5, 0, 79},
-    {7, 0, 3, 0, 5, 0, 88},
-    {15, 0, 3, 0, 5, 0, 88},
-    {7, 0, 3, 0, 5, 0, 89},
-    {15, 0, 3, 0, 5, 0, 89},
-    {7, 0, 3, 0, 5, 0, 122},
-    {21, 0, 3, 0, 5, 0, 122},
-    {15, 0, 3, 0, 5, 0, 122},
-    {7, 0, 3, 0, 5, 0, 90},
-    {9, 0, 3, 0, 5, 0, 130},
-    {5, 0, 3, 0, 5, 0, 130},
-    {15, 0, 3, 0, 5, 0, 130},
-    {15, 0, 11, 0, 5, 0, 6},
-    {10, 0, 0, 0, 5, 0, 93},
-    {12, 0, 13, 0, 5, 0, 93},
-    {7, 0, 0, 0, 5, 0, 93},
-    {12, 9, 13, 0, 5, 0, 93},
-    {21, 0, 0, 0, 5, 0, 93},
-    {15, 0, 18, 0, 5, 0, 93},
-    {13, 0, 0, 0, 5, 0, 93},
-    {12, 0, 13, 0, 5, 0, 91},
-    {10, 0, 0, 0, 5, 0, 91},
-    {7, 0, 0, 0, 5, 0, 91},
-    {12, 9, 13, 0, 5, 0, 91},
-    {12, 7, 13, 0, 5, 0, 91},
-    {21, 0, 0, 0, 5, 0, 91},
-    {1, 0, 0, 0, 5, 0, 91},
-    {7, 0, 0, 0, 5, 0, 100},
-    {13, 0, 0, 0, 5, 0, 100},
-    {12, 230, 13, 0, 5, 0, 95},
-    {7, 0, 0, 0, 5, 0, 95},
-    {12, 0, 13, 0, 5, 0, 95},
-    {10, 0, 0, 0, 5, 0, 95},
-    {12, 9, 13, 0, 5, 0, 95},
-    {13, 0, 0, 0, 5, 0, 95},
-    {21, 0, 0, 0, 5, 0, 95},
-    {7, 0, 0, 0, 5, 0, 111},
-    {12, 7, 13, 0, 5, 0, 111},
-    {21, 0, 0, 0, 5, 0, 111},
-    {12, 0, 13, 0, 5, 0, 99},
-    {10, 0, 0, 0, 5, 0, 99},
-    {7, 0, 0, 0, 5, 0, 99},
-    {10, 9, 0, 0, 5, 0, 99},
-    {21, 0, 0, 0, 5, 0, 99},
-    {12, 7, 13, 0, 5, 0, 99},
-    {13, 0, 0, 0, 5, 0, 99},
-    {15, 0, 0, 0, 5, 0, 18},
-    {7, 0, 0, 0, 5, 0, 108},
-    {10, 0, 0, 0, 5, 0, 108},
-    {12, 0, 13, 0, 5, 0, 108},
-    {10, 9, 0, 0, 5, 0, 108},
-    {12, 7, 13, 0, 5, 0, 108},
-    {21, 0, 0, 0, 5, 0, 108},
-    {7, 0, 0, 0, 5, 0, 129},
-    {21, 0, 0, 0, 5, 0, 129},
-    {7, 0, 0, 0, 5, 0, 109},
-    {12, 0, 13, 0, 5, 0, 109},
-    {10, 0, 0, 0, 5, 0, 109},
-    {12, 7, 13, 0, 5, 0, 109},
-    {12, 9, 13, 0, 5, 0, 109},
-    {13, 0, 0, 0, 5, 0, 109},
-    {12, 0, 13, 0, 5, 0, 107},
-    {10, 0, 0, 0, 5, 0, 107},
-    {7, 0, 0, 0, 5, 0, 107},
-    {12, 7, 13, 0, 5, 0, 107},
-    {10, 9, 0, 0, 5, 0, 107},
-    {12, 230, 13, 0, 5, 0, 107},
-    {7, 0, 0, 0, 5, 0, 124},
-    {10, 0, 0, 0, 5, 0, 124},
-    {12, 0, 13, 0, 5, 0, 124},
-    {12, 9, 13, 0, 5, 0, 124},
-    {12, 7, 13, 0, 5, 0, 124},
-    {21, 0, 0, 0, 5, 0, 124},
-    {13, 0, 0, 0, 5, 0, 124},
-    {7, 0, 0, 0, 5, 0, 123},
-    {10, 0, 0, 0, 5, 0, 123},
-    {12, 0, 13, 0, 5, 0, 123},
-    {12, 9, 13, 0, 5, 0, 123},
-    {12, 7, 13, 0, 5, 0, 123},
-    {21, 0, 0, 0, 5, 0, 123},
-    {7, 0, 0, 0, 5, 0, 114},
-    {10, 0, 0, 0, 5, 0, 114},
-    {12, 0, 13, 0, 5, 0, 114},
-    {12, 9, 13, 0, 5, 0, 114},
-    {21, 0, 0, 0, 5, 0, 114},
-    {13, 0, 0, 0, 5, 0, 114},
-    {7, 0, 0, 0, 5, 0, 101},
-    {12, 0, 13, 0, 5, 0, 101},
-    {10, 0, 0, 0, 5, 0, 101},
-    {10, 9, 0, 0, 5, 0, 101},
-    {12, 7, 13, 0, 5, 0, 101},
-    {13, 0, 0, 0, 5, 0, 101},
-    {7, 0, 0, 0, 5, 0, 126},
-    {12, 0, 13, 0, 5, 0, 126},
-    {10, 0, 0, 0, 5, 0, 126},
-    {12, 9, 13, 0, 5, 0, 126},
-    {13, 0, 0, 0, 5, 0, 126},
-    {15, 0, 0, 0, 5, 0, 126},
-    {21, 0, 0, 0, 5, 0, 126},
-    {26, 0, 0, 0, 5, 0, 126},
-    {9, 0, 0, 0, 5, 0, 125},
-    {5, 0, 0, 0, 5, 0, 125},
-    {13, 0, 0, 0, 5, 0, 125},
-    {15, 0, 0, 0, 5, 0, 125},
-    {7, 0, 0, 0, 5, 0, 125},
-    {7, 0, 0, 0, 5, 0, 121},
-    {7, 0, 0, 0, 5, 0, 62},
-    {14, 0, 0, 0, 5, 0, 62},
-    {21, 0, 0, 0, 5, 0, 62},
-    {7, 0, 0, 0, 5, 0, 80},
-    {7, 0, 0, 0, 5, 0, 127},
-    {7, 0, 0, 0, 5, 0, 115},
-    {13, 0, 0, 0, 5, 0, 115},
-    {21, 0, 0, 0, 5, 0, 115},
-    {7, 0, 0, 0, 5, 0, 103},
-    {12, 1, 13, 0, 5, 0, 103},
-    {21, 0, 0, 0, 5, 0, 103},
-    {7, 0, 0, 0, 5, 0, 119},
-    {12, 230, 13, 0, 5, 0, 119},
-    {21, 0, 0, 0, 5, 0, 119},
-    {26, 0, 0, 0, 5, 0, 119},
-    {6, 0, 0, 0, 5, 0, 119},
-    {13, 0, 0, 0, 5, 0, 119},
-    {15, 0, 0, 0, 5, 0, 119},
-    {7, 0, 0, 0, 5, 0, 98},
-    {10, 0, 0, 0, 5, 0, 98},
-    {12, 0, 13, 0, 5, 0, 98},
-    {6, 0, 0, 0, 5, 0, 98},
-    {7, 0, 0, 0, 5, 0, 105},
-    {26, 0, 0, 0, 5, 0, 105},
-    {12, 0, 13, 0, 5, 0, 105},
-    {12, 1, 13, 0, 5, 0, 105},
-    {21, 0, 0, 0, 5, 0, 105},
-    {10, 216, 0, 0, 5, 0, 0},
-    {10, 226, 0, 0, 5, 0, 0},
-    {12, 230, 13, 0, 5, 0, 2},
-    {25, 0, 0, 0, 5, 0, 0},
-    {13, 0, 8, 0, 5, 0, 0},
-    {26, 0, 0, 0, 5, 0, 131},
-    {12, 0, 13, 0, 5, 0, 131},
-    {21, 0, 0, 0, 5, 0, 131},
-    {7, 0, 3, 0, 5, 0, 113},
-    {15, 0, 3, 0, 5, 0, 113},
-    {12, 220, 13, 0, 5, 0, 113},
-    {26, 0, 0, 0, 2, 0, 32},
+    {18, 0, 18, 1, 1, 0, 1},
+    {21, 0, 18, 0, 1, 0, 5},
+    {7, 0, 0, 0, 1, 33, 14},
+    {7, 0, 0, 0, 1, 33, 32},
+    {6, 0, 0, 0, 1, 0, 32},
+    {6, 0, 0, 0, 1, 0, 5},
+    {7, 0, 0, 0, 1, 24, 14},
+    {23, 0, 10, 0, 0, 0, 10},
+    {26, 0, 18, 0, 0, 0, 14},
+    {26, 0, 18, 0, 1, 0, 12},
+    {25, 0, 18, 0, 1, 0, 12},
+    {1, 0, 18, 0, 5, 0, 21},
+    {26, 0, 18, 0, 5, 0, 31},
+    {7, 0, 0, 0, 5, 47, 12},
+    {14, 0, 18, 0, 5, 2, 12},
+    {15, 0, 18, 0, 5, 2, 12},
+    {26, 0, 18, 0, 5, 2, 12},
+    {26, 0, 0, 0, 5, 2, 12},
+    {7, 0, 0, 0, 5, 73, 12},
+    {7, 0, 0, 0, 5, 74, 12},
+    {7, 0, 0, 0, 5, 37, 12},
+    {15, 0, 0, 0, 5, 37, 12},
+    {7, 0, 0, 0, 5, 38, 12},
+    {14, 0, 0, 0, 5, 38, 12},
+    {7, 0, 0, 0, 5, 118, 12},
+    {12, 230, 13, 0, 5, 118, 21},
+    {7, 0, 0, 0, 5, 48, 12},
+    {21, 0, 0, 0, 5, 48, 17},
+    {7, 0, 0, 0, 5, 59, 12},
+    {21, 0, 0, 0, 5, 59, 17},
+    {14, 0, 0, 0, 5, 59, 12},
+    {9, 0, 0, 0, 5, 39, 12},
+    {5, 0, 0, 0, 5, 39, 12},
+    {7, 0, 0, 0, 5, 49, 12},
+    {7, 0, 0, 0, 5, 50, 12},
+    {13, 0, 0, 0, 5, 50, 11},
+    {9, 0, 0, 0, 5, 136, 12},
+    {5, 0, 0, 0, 5, 136, 12},
+    {7, 0, 0, 0, 5, 106, 12},
+    {7, 0, 0, 0, 5, 104, 12},
+    {21, 0, 0, 0, 5, 104, 12},
+    {7, 0, 0, 0, 5, 110, 12},
+    {7, 0, 3, 0, 5, 51, 12},
+    {7, 0, 3, 0, 5, 86, 12},
+    {21, 0, 3, 0, 5, 86, 17},
+    {15, 0, 3, 0, 5, 86, 12},
+    {7, 0, 3, 0, 5, 120, 12},
+    {26, 0, 3, 0, 5, 120, 12},
+    {15, 0, 3, 0, 5, 120, 12},
+    {7, 0, 3, 0, 5, 116, 12},
+    {15, 0, 3, 0, 5, 116, 12},
+    {7, 0, 3, 0, 5, 128, 12},
+    {15, 0, 3, 0, 5, 128, 12},
+    {7, 0, 3, 0, 5, 63, 12},
+    {15, 0, 3, 0, 5, 63, 12},
+    {21, 0, 18, 0, 5, 63, 17},
+    {7, 0, 3, 0, 5, 75, 12},
+    {21, 0, 3, 0, 5, 75, 12},
+    {7, 0, 3, 0, 5, 97, 12},
+    {7, 0, 3, 0, 5, 96, 12},
+    {15, 0, 3, 0, 5, 96, 12},
+    {7, 0, 3, 0, 5, 60, 12},
+    {12, 0, 13, 0, 5, 60, 21},
+    {12, 220, 13, 0, 5, 60, 21},
+    {12, 230, 13, 0, 5, 60, 21},
+    {12, 1, 13, 0, 5, 60, 21},
+    {12, 9, 13, 0, 5, 60, 21},
+    {15, 0, 3, 0, 5, 60, 12},
+    {21, 0, 3, 0, 5, 60, 17},
+    {21, 0, 3, 0, 5, 60, 12},
+    {7, 0, 3, 0, 5, 87, 12},
+    {15, 0, 3, 0, 5, 87, 12},
+    {21, 0, 3, 0, 5, 87, 12},
+    {7, 0, 3, 0, 5, 117, 12},
+    {15, 0, 3, 0, 5, 117, 12},
+    {7, 0, 3, 0, 5, 112, 12},
+    {26, 0, 3, 0, 5, 112, 12},
+    {12, 230, 13, 0, 5, 112, 21},
+    {12, 220, 13, 0, 5, 112, 21},
+    {15, 0, 3, 0, 5, 112, 12},
+    {21, 0, 3, 0, 5, 112, 17},
+    {21, 0, 3, 0, 5, 112, 15},
+    {7, 0, 3, 0, 5, 79, 12},
+    {21, 0, 18, 0, 5, 79, 17},
+    {7, 0, 3, 0, 5, 88, 12},
+    {15, 0, 3, 0, 5, 88, 12},
+    {7, 0, 3, 0, 5, 89, 12},
+    {15, 0, 3, 0, 5, 89, 12},
+    {7, 0, 3, 0, 5, 122, 12},
+    {21, 0, 3, 0, 5, 122, 12},
+    {15, 0, 3, 0, 5, 122, 12},
+    {7, 0, 3, 0, 5, 90, 12},
+    {9, 0, 3, 0, 5, 130, 12},
+    {5, 0, 3, 0, 5, 130, 12},
+    {15, 0, 3, 0, 5, 130, 12},
+    {15, 0, 11, 0, 5, 6, 12},
+    {10, 0, 0, 0, 5, 93, 21},
+    {12, 0, 13, 0, 5, 93, 21},
+    {7, 0, 0, 0, 5, 93, 12},
+    {12, 9, 13, 0, 5, 93, 21},
+    {21, 0, 0, 0, 5, 93, 17},
+    {21, 0, 0, 0, 5, 93, 12},
+    {15, 0, 18, 0, 5, 93, 12},
+    {13, 0, 0, 0, 5, 93, 11},
+    {12, 0, 13, 0, 5, 91, 21},
+    {10, 0, 0, 0, 5, 91, 21},
+    {7, 0, 0, 0, 5, 91, 12},
+    {12, 9, 13, 0, 5, 91, 21},
+    {12, 7, 13, 0, 5, 91, 21},
+    {21, 0, 0, 0, 5, 91, 12},
+    {1, 0, 0, 0, 5, 91, 12},
+    {21, 0, 0, 0, 5, 91, 17},
+    {7, 0, 0, 0, 5, 100, 12},
+    {13, 0, 0, 0, 5, 100, 11},
+    {12, 230, 13, 0, 5, 95, 21},
+    {7, 0, 0, 0, 5, 95, 12},
+    {12, 0, 13, 0, 5, 95, 21},
+    {10, 0, 0, 0, 5, 95, 21},
+    {12, 9, 13, 0, 5, 95, 21},
+    {13, 0, 0, 0, 5, 95, 11},
+    {21, 0, 0, 0, 5, 95, 17},
+    {7, 0, 0, 0, 5, 111, 12},
+    {12, 7, 13, 0, 5, 111, 21},
+    {21, 0, 0, 0, 5, 111, 12},
+    {21, 0, 0, 0, 5, 111, 18},
+    {12, 0, 13, 0, 5, 99, 21},
+    {10, 0, 0, 0, 5, 99, 21},
+    {7, 0, 0, 0, 5, 99, 12},
+    {10, 9, 0, 0, 5, 99, 21},
+    {21, 0, 0, 0, 5, 99, 17},
+    {21, 0, 0, 0, 5, 99, 12},
+    {12, 7, 13, 0, 5, 99, 21},
+    {13, 0, 0, 0, 5, 99, 11},
+    {21, 0, 0, 0, 5, 99, 18},
+    {15, 0, 0, 0, 5, 18, 12},
+    {7, 0, 0, 0, 5, 108, 12},
+    {10, 0, 0, 0, 5, 108, 21},
+    {12, 0, 13, 0, 5, 108, 21},
+    {10, 9, 0, 0, 5, 108, 21},
+    {12, 7, 13, 0, 5, 108, 21},
+    {21, 0, 0, 0, 5, 108, 17},
+    {21, 0, 0, 0, 5, 108, 12},
+    {7, 0, 0, 0, 5, 129, 12},
+    {21, 0, 0, 0, 5, 129, 17},
+    {7, 0, 0, 0, 5, 109, 12},
+    {12, 0, 13, 0, 5, 109, 21},
+    {10, 0, 0, 0, 5, 109, 21},
+    {12, 7, 13, 0, 5, 109, 21},
+    {12, 9, 13, 0, 5, 109, 21},
+    {13, 0, 0, 0, 5, 109, 11},
+    {12, 0, 13, 0, 5, 107, 21},
+    {10, 0, 0, 0, 5, 107, 21},
+    {7, 0, 0, 0, 5, 107, 12},
+    {12, 7, 13, 0, 5, 107, 21},
+    {10, 9, 0, 0, 5, 107, 21},
+    {12, 230, 13, 0, 5, 107, 21},
+    {7, 0, 0, 0, 5, 135, 12},
+    {10, 0, 0, 0, 5, 135, 21},
+    {12, 0, 13, 0, 5, 135, 21},
+    {12, 9, 13, 0, 5, 135, 21},
+    {12, 7, 13, 0, 5, 135, 21},
+    {21, 0, 0, 0, 5, 135, 17},
+    {21, 0, 0, 0, 5, 135, 12},
+    {13, 0, 0, 0, 5, 135, 11},
+    {7, 0, 0, 0, 5, 124, 12},
+    {10, 0, 0, 0, 5, 124, 21},
+    {12, 0, 13, 0, 5, 124, 21},
+    {12, 9, 13, 0, 5, 124, 21},
+    {12, 7, 13, 0, 5, 124, 21},
+    {21, 0, 0, 0, 5, 124, 12},
+    {13, 0, 0, 0, 5, 124, 11},
+    {7, 0, 0, 0, 5, 123, 12},
+    {10, 0, 0, 0, 5, 123, 21},
+    {12, 0, 13, 0, 5, 123, 21},
+    {12, 9, 13, 0, 5, 123, 21},
+    {12, 7, 13, 0, 5, 123, 21},
+    {21, 0, 0, 0, 5, 123, 18},
+    {21, 0, 0, 0, 5, 123, 17},
+    {21, 0, 0, 0, 5, 123, 6},
+    {21, 0, 0, 0, 5, 123, 12},
+    {7, 0, 0, 0, 5, 114, 12},
+    {10, 0, 0, 0, 5, 114, 21},
+    {12, 0, 13, 0, 5, 114, 21},
+    {12, 9, 13, 0, 5, 114, 21},
+    {21, 0, 0, 0, 5, 114, 17},
+    {21, 0, 0, 0, 5, 114, 12},
+    {13, 0, 0, 0, 5, 114, 11},
+    {21, 0, 18, 0, 5, 31, 18},
+    {7, 0, 0, 0, 5, 101, 12},
+    {12, 0, 13, 0, 5, 101, 21},
+    {10, 0, 0, 0, 5, 101, 21},
+    {10, 9, 0, 0, 5, 101, 21},
+    {12, 7, 13, 0, 5, 101, 21},
+    {13, 0, 0, 0, 5, 101, 11},
+    {7, 0, 0, 0, 5, 126, 38},
+    {12, 0, 13, 0, 5, 126, 38},
+    {10, 0, 0, 0, 5, 126, 38},
+    {12, 9, 13, 0, 5, 126, 38},
+    {13, 0, 0, 0, 5, 126, 11},
+    {15, 0, 0, 0, 5, 126, 38},
+    {21, 0, 0, 0, 5, 126, 17},
+    {26, 0, 0, 0, 5, 126, 38},
+    {9, 0, 0, 0, 5, 125, 12},
+    {5, 0, 0, 0, 5, 125, 12},
+    {13, 0, 0, 0, 5, 125, 11},
+    {15, 0, 0, 0, 5, 125, 12},
+    {7, 0, 0, 0, 5, 125, 12},
+    {7, 0, 0, 0, 5, 121, 12},
+    {7, 0, 0, 0, 5, 133, 12},
+    {10, 0, 0, 0, 5, 133, 21},
+    {12, 0, 13, 0, 5, 133, 21},
+    {12, 9, 0, 0, 5, 133, 21},
+    {21, 0, 0, 0, 5, 133, 17},
+    {13, 0, 0, 0, 5, 133, 11},
+    {15, 0, 0, 0, 5, 133, 12},
+    {21, 0, 0, 0, 5, 134, 18},
+    {21, 0, 0, 0, 5, 134, 6},
+    {7, 0, 0, 0, 5, 134, 12},
+    {12, 0, 13, 0, 5, 134, 21},
+    {10, 0, 0, 0, 5, 134, 21},
+    {7, 0, 0, 0, 5, 62, 12},
+    {14, 0, 0, 0, 5, 62, 12},
+    {21, 0, 0, 0, 5, 62, 17},
+    {7, 0, 0, 0, 5, 80, 12},
+    {7, 0, 0, 0, 5, 80, 0},
+    {7, 0, 0, 0, 5, 80, 1},
+    {7, 0, 0, 0, 5, 127, 12},
+    {7, 0, 0, 0, 5, 127, 0},
+    {7, 0, 0, 0, 5, 127, 1},
+    {7, 0, 0, 0, 5, 115, 12},
+    {13, 0, 0, 0, 5, 115, 11},
+    {21, 0, 0, 0, 5, 115, 17},
+    {7, 0, 0, 0, 5, 103, 12},
+    {12, 1, 13, 0, 5, 103, 21},
+    {21, 0, 0, 0, 5, 103, 17},
+    {7, 0, 0, 0, 5, 119, 12},
+    {12, 230, 13, 0, 5, 119, 21},
+    {21, 0, 0, 0, 5, 119, 17},
+    {21, 0, 0, 0, 5, 119, 12},
+    {26, 0, 0, 0, 5, 119, 12},
+    {6, 0, 0, 0, 5, 119, 12},
+    {13, 0, 0, 0, 5, 119, 11},
+    {15, 0, 0, 0, 5, 119, 12},
+    {7, 0, 0, 0, 5, 98, 12},
+    {10, 0, 0, 0, 5, 98, 21},
+    {12, 0, 13, 0, 5, 98, 21},
+    {6, 0, 0, 0, 5, 98, 12},
+    {6, 0, 0, 0, 2, 137, 5},
+    {7, 0, 0, 0, 2, 137, 14},
+    {7, 0, 0, 0, 5, 105, 12},
+    {26, 0, 0, 0, 5, 105, 12},
+    {12, 0, 13, 0, 5, 105, 21},
+    {12, 1, 13, 0, 5, 105, 21},
+    {21, 0, 0, 0, 5, 105, 17},
+    {10, 216, 0, 0, 5, 0, 21},
+    {10, 226, 0, 0, 5, 0, 21},
+    {12, 230, 13, 0, 5, 2, 21},
+    {25, 0, 0, 0, 5, 0, 12},
+    {13, 0, 8, 0, 5, 0, 11},
+    {26, 0, 0, 0, 5, 131, 12},
+    {12, 0, 13, 0, 5, 131, 21},
+    {21, 0, 0, 0, 5, 131, 17},
+    {21, 0, 0, 0, 5, 131, 12},
+    {12, 230, 13, 0, 5, 56, 21},
+    {7, 0, 3, 0, 5, 113, 12},
+    {15, 0, 3, 0, 5, 113, 12},
+    {12, 220, 13, 0, 5, 113, 21},
+    {9, 0, 3, 0, 5, 132, 12},
+    {5, 0, 3, 0, 5, 132, 12},
+    {12, 230, 13, 0, 5, 132, 21},
+    {12, 7, 13, 0, 5, 132, 21},
+    {13, 0, 3, 0, 5, 132, 11},
+    {21, 0, 3, 0, 5, 132, 0},
+    {2, 0, 18, 0, 5, 102, 14},
+    {26, 0, 0, 0, 2, 0, 29},
+    {26, 0, 0, 0, 5, 0, 28},
+    {26, 0, 0, 0, 2, 32, 14},
+    {24, 0, 18, 0, 2, 0, 41},
+    {26, 0, 18, 0, 5, 0, 5},
 };
 
 #define BIDI_MIRROR_LEN 364
@@ -1186,6 +1364,130 @@ static const MirrorPair mirror_pairs[] = {
     {65379, 65378},
 };
 
+#define BIDI_BRACKET_LEN 120
+static const BracketPair bracket_pairs[] = {
+    {40, 41, 0},
+    {41, 40, 1},
+    {91, 93, 0},
+    {93, 91, 1},
+    {123, 125, 0},
+    {125, 123, 1},
+    {3898, 3899, 0},
+    {3899, 3898, 1},
+    {3900, 3901, 0},
+    {3901, 3900, 1},
+    {5787, 5788, 0},
+    {5788, 5787, 1},
+    {8261, 8262, 0},
+    {8262, 8261, 1},
+    {8317, 8318, 0},
+    {8318, 8317, 1},
+    {8333, 8334, 0},
+    {8334, 8333, 1},
+    {8968, 8969, 0},
+    {8969, 8968, 1},
+    {8970, 8971, 0},
+    {8971, 8970, 1},
+    {9001, 9002, 0},
+    {9002, 9001, 1},
+    {10088, 10089, 0},
+    {10089, 10088, 1},
+    {10090, 10091, 0},
+    {10091, 10090, 1},
+    {10092, 10093, 0},
+    {10093, 10092, 1},
+    {10094, 10095, 0},
+    {10095, 10094, 1},
+    {10096, 10097, 0},
+    {10097, 10096, 1},
+    {10098, 10099, 0},
+    {10099, 10098, 1},
+    {10100, 10101, 0},
+    {10101, 10100, 1},
+    {10181, 10182, 0},
+    {10182, 10181, 1},
+    {10214, 10215, 0},
+    {10215, 10214, 1},
+    {10216, 10217, 0},
+    {10217, 10216, 1},
+    {10218, 10219, 0},
+    {10219, 10218, 1},
+    {10220, 10221, 0},
+    {10221, 10220, 1},
+    {10222, 10223, 0},
+    {10223, 10222, 1},
+    {10627, 10628, 0},
+    {10628, 10627, 1},
+    {10629, 10630, 0},
+    {10630, 10629, 1},
+    {10631, 10632, 0},
+    {10632, 10631, 1},
+    {10633, 10634, 0},
+    {10634, 10633, 1},
+    {10635, 10636, 0},
+    {10636, 10635, 1},
+    {10637, 10640, 0},
+    {10638, 10639, 1},
+    {10639, 10638, 0},
+    {10640, 10637, 1},
+    {10641, 10642, 0},
+    {10642, 10641, 1},
+    {10643, 10644, 0},
+    {10644, 10643, 1},
+    {10645, 10646, 0},
+    {10646, 10645, 1},
+    {10647, 10648, 0},
+    {10648, 10647, 1},
+    {10712, 10713, 0},
+    {10713, 10712, 1},
+    {10714, 10715, 0},
+    {10715, 10714, 1},
+    {10748, 10749, 0},
+    {10749, 10748, 1},
+    {11810, 11811, 0},
+    {11811, 11810, 1},
+    {11812, 11813, 0},
+    {11813, 11812, 1},
+    {11814, 11815, 0},
+    {11815, 11814, 1},
+    {11816, 11817, 0},
+    {11817, 11816, 1},
+    {12296, 12297, 0},
+    {12297, 12296, 1},
+    {12298, 12299, 0},
+    {12299, 12298, 1},
+    {12300, 12301, 0},
+    {12301, 12300, 1},
+    {12302, 12303, 0},
+    {12303, 12302, 1},
+    {12304, 12305, 0},
+    {12305, 12304, 1},
+    {12308, 12309, 0},
+    {12309, 12308, 1},
+    {12310, 12311, 0},
+    {12311, 12310, 1},
+    {12312, 12313, 0},
+    {12313, 12312, 1},
+    {12314, 12315, 0},
+    {12315, 12314, 1},
+    {65113, 65114, 0},
+    {65114, 65113, 1},
+    {65115, 65116, 0},
+    {65116, 65115, 1},
+    {65117, 65118, 0},
+    {65118, 65117, 1},
+    {65288, 65289, 0},
+    {65289, 65288, 1},
+    {65339, 65341, 0},
+    {65341, 65339, 1},
+    {65371, 65373, 0},
+    {65373, 65371, 1},
+    {65375, 65376, 0},
+    {65376, 65375, 1},
+    {65378, 65379, 0},
+    {65379, 65378, 1},
+};
+
 /* Reindexing of NFC first characters. */
 #define TOTAL_FIRST 376
 #define TOTAL_LAST 62
@@ -1585,6 +1887,12 @@ static const Reindex nfc_last[] = {
 #define UCDN_SCRIPT_MULTANI 129
 #define UCDN_SCRIPT_OLD_HUNGARIAN 130
 #define UCDN_SCRIPT_SIGNWRITING 131
+#define UCDN_SCRIPT_ADLAM 132
+#define UCDN_SCRIPT_BHAIKSUKI 133
+#define UCDN_SCRIPT_MARCHEN 134
+#define UCDN_SCRIPT_NEWA 135
+#define UCDN_SCRIPT_OSAGE 136
+#define UCDN_SCRIPT_TANGUT 137
 
 #define UCDN_GENERAL_CATEGORY_CC 0
 #define UCDN_GENERAL_CATEGORY_CF 1
@@ -1654,27 +1962,27 @@ static const unsigned char index0[] = {
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 55, 56, 56, 56, 57, 
-    58, 59, 60, 61, 62, 63, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65
-    65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 
-    65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 67, 67, 67
-    67, 67, 67, 67, 67, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 52, 69, 70, 71, 72, 73
-    74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 88, 90
-    91, 92, 93, 94, 95, 96, 97, 98, 88, 99, 88, 88, 88, 88, 88, 100, 100
-    100, 101, 102, 103, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 104, 104
-    104, 104, 105, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88
-    88, 106, 106, 107, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88
-    88, 88, 108, 108, 109, 110, 88, 88, 88, 111, 88, 88, 88, 88, 88, 88, 88
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88
-    88, 88, 88, 112, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 113, 88, 88
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 114, 
-    115, 116, 117, 118, 119, 120, 121, 122, 122, 123, 88, 88, 88, 88, 88, 88
-    88, 88, 88, 88, 88, 88, 88, 124, 88, 88, 88, 88, 88, 125, 88, 126, 127
-    128, 129, 130, 131, 132, 133, 134, 135, 88, 88, 88, 88, 88, 88, 52, 52
-    52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
+    58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 65, 66, 67, 68
+    69, 70, 71, 65, 66, 67, 68, 69, 70, 71, 65, 66, 67, 68, 69, 70, 71, 65, 
+    66, 67, 68, 69, 70, 71, 65, 66, 67, 68, 69, 70, 71, 65, 72, 73, 73, 73
+    73, 73, 73, 73, 73, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 52, 75, 76, 77, 78, 79
+    80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 94, 96
+    97, 98, 99, 100, 101, 102, 103, 104, 94, 105, 94, 106, 94, 94, 94, 107
+    107, 107, 108, 109, 110, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 111
+    111, 112, 113, 114, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94
+    94, 94, 115, 116, 117, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94
+    94, 94, 94, 118, 118, 119, 120, 94, 94, 94, 121, 122, 122, 122, 122, 122
+    122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, 122
+    122, 122, 122, 122, 123, 122, 122, 124, 94, 94, 94, 94, 94, 94, 94, 94
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 125, 94, 94, 94, 94, 94, 94
+    94, 94, 94, 94, 94, 126, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 127, 128, 129, 130, 131, 132, 133, 134, 135
+    135, 136, 94, 94, 94, 94, 94, 137, 94, 94, 94, 94, 94, 94, 94, 138, 139
+    94, 94, 94, 94, 140, 94, 141, 142, 143, 144, 145, 146, 147, 148, 149
+    150, 151, 151, 151, 151, 151, 152, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
@@ -1683,215 +1991,216 @@ static const unsigned char index0[] = {
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
     52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
-    52, 52, 136, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
-    52, 137, 138, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 
-    52, 52, 52, 52, 52, 52, 139, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 52, 52, 141, 140, 140, 140, 140, 142, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 
-    142, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 143, 144, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 
-    88, 88, 88, 88, 88, 88, 88, 88, 88, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 145, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 145, 
+    52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 153, 52, 52, 52, 52, 
+    52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 154, 155, 52, 52, 52, 52, 
+    52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 156, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 52, 52, 
+    158, 157, 157, 157, 157, 159, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, 
+    157, 157, 157, 157, 157, 157, 157, 157, 157, 159, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 160, 161, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 
+    94, 94, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 162, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 
+    74, 74, 74, 74, 74, 74, 74, 74, 74, 162, 
 };
 
 static const unsigned short index1[] = {
@@ -1912,992 +2221,1135 @@ static const unsigned short index1[] = {
     146, 147, 148, 149, 128, 128, 128, 128, 128, 128, 150, 150, 150, 150, 
     151, 152, 153, 120, 154, 155, 156, 156, 156, 157, 158, 159, 160, 160, 
     161, 162, 163, 164, 165, 166, 167, 167, 167, 168, 120, 120, 120, 120, 
-    120, 120, 120, 120, 128, 128, 169, 120, 120, 120, 120, 120, 170, 171, 
-    172, 173, 174, 175, 175, 175, 175, 175, 175, 176, 177, 178, 179, 175, 
-    180, 181, 182, 175, 183, 184, 185, 186, 186, 187, 188, 189, 190, 191, 
-    192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 201, 202, 203, 204, 
-    205, 206, 207, 208, 209, 210, 211, 120, 212, 213, 214, 215, 215, 216, 
-    217, 218, 219, 220, 221, 120, 222, 223, 224, 225, 226, 227, 228, 229, 
-    229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 120, 240, 241, 
-    242, 243, 244, 241, 245, 246, 247, 248, 249, 120, 250, 251, 252, 253, 
-    254, 255, 256, 257, 257, 256, 257, 258, 259, 260, 261, 262, 263, 264, 
-    120, 265, 266, 267, 268, 269, 269, 268, 270, 271, 272, 273, 274, 275, 
-    276, 277, 278, 120, 279, 280, 281, 282, 282, 282, 282, 283, 284, 285, 
-    286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 293, 293, 296, 297, 
-    294, 298, 299, 300, 301, 302, 303, 120, 304, 305, 305, 305, 305, 305, 
-    306, 307, 308, 309, 310, 311, 120, 120, 120, 120, 312, 313, 314, 315, 
-    316, 317, 318, 319, 320, 321, 322, 323, 120, 120, 120, 120, 324, 325, 
-    326, 327, 328, 329, 330, 331, 332, 333, 332, 332, 332, 334, 335, 336, 
-    337, 338, 339, 340, 339, 339, 339, 341, 342, 343, 344, 345, 120, 120, 
-    120, 120, 346, 346, 346, 346, 346, 347, 348, 349, 350, 351, 352, 353, 
-    354, 355, 356, 346, 357, 358, 350, 359, 360, 360, 360, 360, 361, 362, 
-    363, 363, 363, 363, 363, 364, 365, 365, 365, 365, 365, 365, 365, 365, 
-    365, 365, 365, 365, 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 
-    366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 367, 367, 367, 367, 
-    367, 367, 367, 367, 367, 368, 369, 368, 367, 367, 367, 367, 367, 368, 
-    367, 367, 367, 367, 368, 369, 368, 367, 369, 367, 367, 367, 367, 367, 
-    367, 367, 368, 367, 367, 367, 367, 367, 367, 367, 367, 370, 371, 372, 
-    373, 374, 367, 367, 375, 376, 377, 377, 377, 377, 377, 377, 377, 377, 
-    377, 377, 378, 379, 380, 381, 381, 381, 381, 381, 381, 381, 381, 381, 
-    381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 
-    381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 
-    381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 
-    381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 
-    381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 382, 381, 381, 
-    383, 384, 384, 385, 386, 386, 386, 386, 386, 386, 386, 386, 386, 387, 
-    388, 389, 390, 391, 392, 120, 393, 393, 394, 120, 395, 395, 396, 120, 
-    397, 398, 399, 120, 400, 400, 400, 400, 400, 400, 401, 402, 403, 404, 
-    405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 415, 415, 415, 
-    416, 415, 415, 415, 415, 415, 415, 120, 415, 415, 415, 415, 415, 417, 
-    381, 381, 381, 381, 381, 381, 381, 381, 418, 120, 419, 419, 419, 420, 
-    421, 422, 423, 424, 425, 426, 427, 427, 427, 428, 429, 120, 430, 430, 
-    430, 430, 430, 431, 430, 430, 430, 432, 433, 434, 435, 435, 435, 435, 
-    436, 436, 437, 438, 439, 439, 439, 439, 439, 439, 440, 441, 442, 443, 
-    444, 445, 446, 447, 446, 447, 448, 449, 450, 451, 120, 120, 120, 120, 
-    120, 120, 120, 120, 452, 453, 453, 453, 453, 453, 454, 455, 456, 457, 
-    458, 459, 460, 461, 462, 463, 464, 465, 465, 465, 466, 467, 468, 469, 
-    470, 470, 470, 470, 471, 472, 473, 474, 475, 475, 475, 475, 476, 477, 
-    478, 479, 480, 481, 482, 483, 484, 484, 484, 485, 120, 120, 120, 120, 
-    120, 120, 120, 120, 486, 120, 487, 488, 489, 490, 491, 492, 54, 54, 54, 
-    54, 493, 494, 56, 56, 56, 56, 56, 495, 496, 497, 54, 498, 54, 54, 54, 
-    499, 56, 56, 56, 500, 501, 502, 503, 504, 504, 504, 505, 506, 27, 27, 27, 
-    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 507, 508, 27, 
-    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 509, 510, 511, 512, 509, 510, 
-    509, 510, 511, 512, 509, 513, 509, 510, 509, 511, 509, 514, 509, 514, 
-    509, 514, 515, 516, 517, 518, 519, 520, 509, 521, 522, 523, 524, 525, 
-    526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 
-    540, 541, 56, 542, 543, 544, 543, 545, 120, 120, 546, 547, 548, 549, 550, 
-    120, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 
-    564, 563, 565, 566, 567, 568, 569, 570, 571, 572, 573, 572, 574, 575, 
-    572, 576, 572, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 
-    588, 589, 590, 591, 592, 587, 587, 593, 594, 595, 596, 597, 587, 587, 
-    598, 578, 599, 600, 587, 587, 601, 587, 587, 572, 602, 603, 572, 604, 
-    605, 606, 607, 607, 607, 607, 607, 607, 607, 607, 608, 572, 572, 609, 
-    610, 578, 578, 611, 572, 572, 572, 572, 577, 612, 572, 572, 613, 572, 
-    572, 572, 572, 614, 120, 120, 120, 572, 613, 120, 120, 615, 615, 615, 
-    615, 615, 616, 616, 617, 618, 618, 618, 618, 618, 618, 618, 618, 618, 
-    619, 615, 615, 620, 620, 620, 620, 620, 620, 620, 620, 620, 621, 620, 
-    620, 620, 620, 621, 572, 620, 620, 622, 572, 623, 573, 624, 625, 626, 
-    627, 573, 572, 622, 576, 572, 578, 628, 629, 625, 630, 572, 572, 572, 
-    572, 631, 572, 572, 572, 632, 633, 572, 572, 572, 572, 572, 634, 572, 
-    635, 572, 634, 636, 637, 620, 620, 638, 620, 620, 620, 572, 572, 572, 
-    572, 572, 572, 572, 639, 572, 572, 576, 572, 572, 640, 641, 615, 642, 
-    642, 643, 572, 572, 572, 572, 572, 644, 645, 646, 647, 648, 649, 578, 
-    578, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 
-    650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 650, 
-    650, 650, 650, 650, 650, 578, 578, 578, 578, 578, 578, 578, 578, 578, 
-    578, 578, 578, 578, 578, 578, 578, 651, 652, 652, 653, 587, 587, 578, 
-    654, 601, 655, 656, 657, 658, 659, 660, 661, 578, 662, 587, 663, 664, 
-    665, 666, 647, 578, 578, 590, 654, 666, 667, 668, 669, 587, 587, 587, 
-    587, 670, 671, 587, 587, 587, 587, 672, 673, 674, 647, 675, 676, 572, 
-    572, 572, 572, 572, 572, 578, 578, 677, 678, 679, 573, 572, 572, 680, 
-    572, 572, 572, 681, 572, 572, 572, 572, 682, 572, 683, 684, 120, 120, 
-    685, 120, 120, 686, 686, 686, 686, 686, 687, 688, 688, 688, 688, 688, 
-    689, 690, 691, 692, 693, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 
-    694, 695, 696, 697, 698, 698, 698, 698, 699, 700, 701, 701, 701, 701, 
-    701, 701, 701, 702, 703, 704, 367, 367, 369, 120, 369, 369, 369, 369, 
-    369, 369, 369, 369, 705, 705, 705, 705, 706, 707, 708, 709, 710, 711, 
-    533, 712, 713, 120, 120, 120, 120, 120, 120, 120, 714, 714, 714, 715, 
-    714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 716, 120, 714, 714, 
-    714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 
-    714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 717, 120, 120, 120, 
-    718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 729, 729, 
-    729, 729, 729, 729, 729, 729, 730, 731, 732, 733, 733, 733, 733, 733, 
-    733, 733, 733, 733, 733, 734, 735, 736, 736, 736, 736, 737, 738, 365, 
-    365, 365, 365, 365, 365, 365, 365, 365, 365, 739, 740, 741, 736, 736, 
-    736, 742, 718, 718, 718, 718, 719, 120, 733, 733, 743, 743, 743, 744, 
-    745, 746, 741, 741, 741, 747, 748, 749, 743, 743, 743, 750, 745, 746, 
-    741, 741, 741, 741, 751, 749, 741, 752, 753, 753, 753, 753, 753, 754, 
-    753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 741, 741, 741, 
-    755, 756, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 757, 
-    741, 741, 741, 755, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 759, 760, 572, 572, 572, 572, 572, 572, 572, 572, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 760, 760, 760, 
-    760, 760, 761, 761, 762, 761, 761, 761, 761, 761, 761, 761, 761, 761, 
-    761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 
-    761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 
-    761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 
-    761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 
-    761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 763, 
-    764, 764, 764, 764, 764, 764, 765, 120, 766, 766, 766, 766, 766, 767, 
-    768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 
-    768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 
-    768, 768, 768, 768, 768, 769, 768, 768, 770, 771, 120, 120, 101, 101, 
-    101, 101, 101, 772, 773, 774, 101, 101, 101, 775, 776, 776, 776, 776, 
-    776, 776, 776, 776, 777, 778, 779, 120, 64, 64, 780, 781, 782, 27, 783, 
-    27, 27, 27, 27, 27, 27, 27, 784, 785, 27, 786, 787, 27, 27, 788, 789, 
-    120, 120, 120, 120, 120, 120, 120, 790, 791, 792, 793, 794, 794, 795, 
-    796, 797, 798, 799, 799, 799, 799, 799, 799, 800, 120, 801, 802, 802, 
-    802, 802, 802, 803, 804, 805, 806, 807, 808, 809, 809, 810, 811, 812, 
-    813, 814, 814, 815, 816, 817, 817, 818, 819, 820, 821, 365, 365, 365, 
-    822, 823, 824, 824, 824, 824, 824, 825, 826, 827, 828, 829, 830, 831, 
-    346, 350, 832, 833, 833, 833, 833, 833, 834, 835, 120, 836, 837, 838, 
-    839, 346, 346, 840, 841, 842, 842, 842, 842, 842, 842, 843, 844, 845, 
-    120, 120, 846, 847, 848, 849, 120, 850, 850, 850, 120, 369, 369, 54, 54, 
-    54, 54, 54, 851, 852, 120, 853, 853, 853, 853, 853, 853, 853, 853, 853, 
-    853, 847, 847, 847, 847, 854, 855, 856, 857, 365, 365, 365, 365, 365, 
-    365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 
-    365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 
-    365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 
-    365, 365, 365, 365, 365, 858, 120, 366, 366, 859, 860, 366, 366, 366, 
-    366, 366, 861, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 
-    862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, 
-    862, 862, 862, 862, 862, 862, 862, 863, 863, 863, 863, 863, 863, 863, 
-    863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 
-    863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 864, 760, 760, 760, 
-    760, 865, 120, 866, 867, 121, 868, 869, 870, 871, 121, 128, 128, 128, 
-    128, 128, 128, 128, 128, 128, 128, 128, 128, 872, 873, 874, 120, 875, 
+    120, 120, 120, 120, 128, 128, 169, 170, 120, 120, 171, 126, 172, 173, 
+    174, 175, 176, 177, 177, 177, 177, 177, 177, 178, 179, 180, 181, 177, 
+    182, 183, 184, 177, 185, 186, 187, 188, 188, 189, 190, 191, 192, 193, 
+    194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 203, 204, 205, 206, 
+    207, 208, 209, 210, 211, 212, 213, 120, 214, 215, 216, 217, 217, 218, 
+    219, 220, 221, 222, 223, 120, 224, 225, 226, 227, 228, 229, 230, 231, 
+    231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 120, 242, 243, 
+    244, 245, 246, 243, 247, 248, 249, 250, 251, 120, 252, 253, 254, 255, 
+    256, 257, 258, 259, 259, 258, 259, 260, 261, 262, 263, 264, 265, 266, 
+    120, 267, 268, 269, 270, 271, 271, 270, 272, 273, 274, 275, 276, 277, 
+    278, 279, 280, 120, 281, 282, 283, 284, 284, 284, 284, 285, 286, 287, 
+    288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 295, 295, 298, 299, 
+    296, 300, 301, 302, 303, 304, 305, 120, 306, 307, 307, 307, 307, 307, 
+    308, 309, 310, 311, 312, 313, 120, 120, 120, 120, 314, 315, 316, 317, 
+    318, 319, 320, 321, 322, 323, 324, 325, 120, 120, 120, 120, 326, 327, 
+    328, 329, 330, 331, 332, 333, 334, 335, 334, 334, 334, 336, 337, 338, 
+    339, 340, 341, 342, 341, 341, 341, 343, 344, 345, 346, 347, 120, 120, 
+    120, 120, 348, 348, 348, 348, 348, 349, 350, 351, 352, 353, 354, 355, 
+    356, 357, 358, 348, 359, 360, 352, 361, 362, 362, 362, 362, 363, 364, 
+    365, 365, 365, 365, 365, 366, 367, 367, 367, 367, 367, 367, 367, 367, 
+    367, 367, 367, 367, 368, 368, 368, 368, 368, 368, 368, 368, 368, 369, 
+    369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 370, 370, 370, 370, 
+    370, 370, 370, 370, 370, 371, 372, 371, 370, 370, 370, 370, 370, 371, 
+    370, 370, 370, 370, 371, 372, 371, 370, 372, 370, 370, 370, 370, 370, 
+    370, 370, 371, 370, 370, 370, 370, 370, 370, 370, 370, 373, 374, 375, 
+    376, 377, 370, 370, 378, 379, 380, 380, 380, 380, 380, 380, 380, 380, 
+    380, 380, 381, 382, 383, 384, 384, 384, 384, 384, 384, 384, 384, 384, 
+    384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 
+    384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 
+    384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 
+    384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 
+    384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 384, 384, 
+    386, 387, 387, 388, 389, 389, 389, 389, 389, 389, 389, 389, 389, 390, 
+    391, 392, 393, 394, 395, 120, 396, 396, 397, 120, 398, 398, 399, 120, 
+    400, 401, 402, 120, 403, 403, 403, 403, 403, 403, 404, 405, 406, 407, 
+    408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 418, 418, 418, 
+    419, 418, 418, 418, 418, 418, 418, 120, 420, 418, 418, 418, 418, 421, 
+    384, 384, 384, 384, 384, 384, 384, 384, 422, 120, 423, 423, 423, 424, 
+    425, 426, 427, 428, 429, 430, 431, 431, 431, 432, 433, 120, 434, 434, 
+    434, 434, 434, 435, 434, 434, 434, 436, 437, 438, 439, 439, 439, 439, 
+    440, 440, 441, 442, 443, 443, 443, 443, 443, 443, 444, 445, 446, 447, 
+    448, 449, 450, 451, 450, 451, 452, 453, 454, 455, 120, 120, 120, 120, 
+    120, 120, 120, 120, 456, 457, 457, 457, 457, 457, 458, 459, 460, 461, 
+    462, 463, 464, 465, 466, 467, 468, 469, 469, 469, 470, 471, 472, 473, 
+    474, 474, 474, 474, 475, 476, 477, 478, 479, 479, 479, 479, 480, 481, 
+    482, 483, 484, 485, 486, 487, 488, 488, 488, 489, 100, 490, 120, 120, 
+    120, 120, 120, 120, 491, 120, 492, 493, 494, 495, 496, 497, 54, 54, 54, 
+    54, 498, 499, 56, 56, 56, 56, 56, 500, 501, 502, 54, 503, 54, 54, 54, 
+    504, 56, 56, 56, 505, 506, 507, 508, 509, 509, 509, 510, 511, 27, 27, 27, 
+    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 512, 513, 27, 
+    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 514, 515, 516, 517, 514, 515, 
+    514, 515, 516, 517, 514, 518, 514, 515, 514, 516, 514, 519, 514, 519, 
+    514, 519, 520, 521, 522, 523, 524, 525, 514, 526, 527, 528, 529, 530, 
+    531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 
+    545, 546, 56, 547, 548, 549, 550, 551, 552, 552, 553, 554, 555, 556, 557, 
+    120, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 
+    571, 570, 572, 573, 574, 575, 576, 577, 578, 579, 580, 579, 581, 582, 
+    579, 583, 579, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 
+    595, 596, 597, 598, 599, 594, 594, 600, 601, 602, 603, 604, 594, 594, 
+    605, 585, 606, 607, 594, 594, 608, 594, 594, 579, 609, 610, 611, 612, 
+    613, 614, 615, 615, 615, 615, 615, 615, 615, 615, 616, 579, 579, 617, 
+    618, 585, 585, 619, 579, 579, 579, 579, 584, 620, 621, 622, 623, 579, 
+    579, 579, 579, 623, 120, 120, 120, 579, 624, 120, 120, 625, 625, 625, 
+    625, 625, 626, 626, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 
+    629, 625, 630, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 631, 
+    631, 631, 631, 633, 579, 631, 631, 634, 579, 635, 636, 637, 638, 639, 
+    640, 636, 579, 634, 641, 579, 642, 643, 644, 645, 646, 579, 579, 579, 
+    647, 648, 649, 650, 579, 651, 652, 579, 653, 579, 579, 654, 655, 656, 
+    657, 579, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 579, 
+    579, 579, 669, 579, 670, 579, 671, 672, 673, 674, 675, 676, 625, 677, 
+    677, 678, 579, 579, 579, 669, 679, 680, 681, 682, 683, 684, 685, 585, 
+    585, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 
+    686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 
+    686, 686, 686, 686, 686, 585, 585, 585, 585, 585, 585, 585, 585, 585, 
+    585, 585, 585, 585, 585, 585, 585, 687, 688, 688, 689, 594, 594, 585, 
+    690, 691, 692, 693, 694, 695, 696, 697, 698, 585, 699, 594, 700, 701, 
+    702, 703, 683, 585, 585, 597, 690, 703, 704, 705, 706, 594, 594, 594, 
+    594, 707, 708, 594, 594, 594, 594, 709, 710, 711, 683, 712, 713, 579, 
+    579, 579, 714, 579, 579, 585, 585, 715, 716, 717, 636, 579, 579, 718, 
+    579, 579, 579, 719, 579, 579, 579, 579, 720, 579, 721, 722, 120, 120, 
+    723, 120, 120, 724, 724, 724, 724, 724, 725, 726, 726, 726, 726, 726, 
+    727, 728, 729, 730, 731, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 
+    732, 733, 734, 735, 736, 736, 736, 736, 737, 738, 739, 739, 739, 739, 
+    739, 739, 739, 740, 741, 742, 370, 370, 372, 120, 372, 372, 372, 372, 
+    372, 372, 372, 372, 743, 743, 743, 743, 744, 745, 746, 747, 748, 749, 
+    750, 751, 752, 120, 120, 120, 120, 120, 120, 120, 753, 753, 753, 754, 
+    753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 755, 120, 753, 753, 
+    753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 
+    753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 756, 120, 120, 120, 
+    757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 769, 
+    770, 769, 769, 769, 771, 772, 773, 774, 775, 776, 777, 777, 778, 777, 
+    777, 777, 779, 780, 781, 782, 783, 784, 784, 784, 784, 785, 786, 787, 
+    787, 787, 787, 787, 787, 787, 787, 787, 787, 788, 789, 790, 784, 784, 
+    784, 791, 757, 757, 757, 757, 758, 120, 792, 792, 793, 793, 793, 794, 
+    795, 796, 790, 790, 790, 797, 798, 799, 793, 793, 793, 800, 795, 796, 
+    790, 790, 790, 790, 801, 799, 790, 802, 803, 803, 803, 803, 803, 804, 
+    803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 803, 790, 790, 790, 
+    805, 806, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 807, 
+    790, 790, 790, 805, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 809, 810, 579, 579, 579, 579, 579, 579, 579, 579, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 809, 810, 810, 810, 
+    810, 810, 811, 811, 812, 811, 811, 811, 811, 811, 811, 811, 811, 811, 
+    811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 
+    811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 
+    811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 
+    811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 
+    811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 813, 
+    814, 814, 814, 814, 814, 814, 815, 120, 816, 816, 816, 816, 816, 817, 
+    818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 
+    818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 
+    818, 818, 818, 818, 818, 819, 818, 818, 820, 821, 120, 120, 101, 101, 
+    101, 101, 101, 822, 823, 824, 101, 101, 101, 825, 826, 826, 826, 826, 
+    826, 826, 826, 826, 827, 828, 829, 120, 64, 64, 830, 831, 832, 27, 833, 
+    27, 27, 27, 27, 27, 27, 27, 834, 835, 27, 836, 837, 27, 27, 838, 839, 
+    120, 120, 120, 120, 120, 120, 120, 840, 841, 842, 843, 844, 844, 845, 
+    846, 847, 848, 849, 849, 849, 849, 849, 849, 850, 120, 851, 852, 852, 
+    852, 852, 852, 853, 854, 855, 856, 857, 858, 859, 859, 860, 861, 862, 
+    863, 864, 864, 865, 866, 867, 867, 868, 869, 870, 871, 367, 367, 367, 
+    872, 873, 874, 874, 874, 874, 874, 875, 876, 877, 878, 879, 880, 881, 
+    348, 352, 882, 883, 883, 883, 883, 883, 884, 885, 120, 886, 887, 888, 
+    889, 348, 348, 890, 891, 892, 892, 892, 892, 892, 892, 893, 894, 895, 
+    120, 120, 896, 897, 898, 899, 120, 900, 900, 900, 120, 372, 372, 54, 54, 
+    54, 54, 54, 901, 902, 120, 903, 903, 903, 903, 903, 903, 903, 903, 903, 
+    903, 897, 897, 897, 897, 904, 905, 906, 907, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 
+    909, 909, 908, 909, 909, 910, 909, 909, 909, 909, 909, 909, 908, 909, 
+    909, 910, 909, 909, 909, 908, 909, 909, 910, 909, 909, 909, 908, 909, 
+    909, 911, 120, 368, 368, 912, 913, 369, 369, 369, 369, 369, 914, 915, 
+    915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 
+    915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 
+    915, 915, 915, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 
+    916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 
+    916, 916, 916, 916, 916, 916, 916, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 809, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 917, 810, 810, 810, 810, 918, 120, 919, 
+    920, 121, 921, 922, 923, 924, 121, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 925, 926, 927, 120, 928, 128, 128, 128, 128, 
     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
-    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
-    128, 128, 876, 120, 120, 128, 128, 128, 128, 128, 128, 128, 128, 877
-    128, 128, 128, 128, 128, 128, 120, 120, 120, 120, 120, 128, 878, 879
-    879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892
-    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128
-    128, 128, 893, 894, 895, 896, 897, 898, 899, 899, 900, 901, 902, 902
-    903, 904, 905, 906, 905, 905, 905, 905, 907, 908, 908, 908, 909, 910
-    910, 910, 911, 912, 913, 120, 914, 915, 916, 915, 915, 917, 915, 915
-    918, 915, 919, 915, 919, 120, 120, 120, 120, 915, 915, 915, 915, 915
-    915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 920, 921, 922, 922
-    922, 922, 922, 923, 607, 924, 924, 924, 924, 924, 924, 925, 926, 927
-    928, 572, 929, 930, 120, 120, 120, 120, 120, 607, 607, 607, 607, 607
-    931, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120
-    120, 120, 120, 932, 932, 932, 933, 934, 934, 934, 934, 934, 934, 935
-    120, 936, 937, 937, 938, 939, 939, 939, 939, 940, 120, 941, 941, 942
-    943, 944, 944, 944, 944, 945, 946, 947, 947, 947, 948, 949, 949, 949
-    949, 950, 949, 951, 120, 120, 120, 120, 120, 952, 952, 952, 952, 952
-    953, 953, 953, 953, 953, 954, 954, 954, 954, 954, 954, 955, 955, 955
-    956, 957, 958, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 959
-    959, 959, 959, 959, 120, 960, 960, 960, 960, 960, 960, 961, 962, 120
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963
-    963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963
-    963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 963, 964
-    120, 963, 963, 965, 120, 963, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 966, 967, 968
-    968, 968, 968, 969, 970, 971, 971, 972, 973, 974, 974, 975, 976, 977
-    977, 977, 978, 979, 980, 120, 120, 120, 120, 120, 120, 981, 981, 982
-    983, 984, 984, 985, 986, 987, 987, 987, 988, 120, 120, 120, 120, 120
-    120, 120, 120, 989, 989, 989, 989, 990, 990, 990, 991, 992, 992, 993
-    992, 992, 992, 992, 992, 994, 995, 996, 997, 998, 998, 999, 1000, 1001
-    120, 1002, 1003, 1004, 1004, 1004, 1005, 1006, 1006, 1006, 1007, 120
-    120, 120, 120, 1008, 1009, 1008, 1008, 1010, 1011, 1012, 120, 1013, 1013
-    1013, 1013, 1013, 1013, 1014, 1015, 1016, 1016, 1017, 1018, 1019, 1019
-    1020, 1021, 1022, 1022, 1023, 1024, 120, 1025, 120, 120, 120, 120, 120
-    120, 120, 120, 120, 120, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026
-    1026, 1027, 120, 120, 120, 120, 120, 120, 1028, 1028, 1028, 1028, 1028
-    1028, 1029, 120, 1030, 1030, 1030, 1030, 1030, 1030, 1031, 1032, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 929, 120
+    120, 128, 128, 128, 128, 128, 128, 128, 128, 930, 128, 128, 128, 128
+    128, 128, 120, 120, 120, 120, 120, 128, 931, 932, 932, 933, 934, 935
+    936, 937, 938, 939, 940, 941, 942, 943, 944, 169, 128, 128, 128, 128
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 945, 946
+    947, 948, 949, 950, 951, 951, 952, 953, 954, 954, 955, 956, 957, 958
+    959, 959, 959, 959, 960, 961, 961, 961, 962, 963, 963, 963, 964, 965
+    966, 120, 967, 968, 969, 968, 968, 970, 968, 968, 971, 968, 972, 968
+    972, 120, 120, 120, 120, 968, 968, 968, 968, 968, 968, 968, 968, 968
+    968, 968, 968, 968, 968, 968, 973, 974, 975, 975, 975, 975, 975, 976
+    615, 977, 977, 977, 977, 977, 977, 978, 979, 980, 981, 579, 982, 983
+    120, 120, 120, 120, 120, 615, 615, 615, 615, 615, 984, 120, 120, 120
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 985
+    985, 985, 986, 987, 987, 987, 987, 987, 987, 988, 120, 989, 990, 990
+    991, 992, 992, 992, 992, 993, 120, 994, 994, 995, 996, 997, 997, 997
+    997, 998, 999, 1000, 1000, 1000, 1001, 1002, 1002, 1002, 1002, 1003
+    1002, 1004, 120, 120, 120, 120, 120, 1005, 1005, 1005, 1005, 1005, 1006
+    1006, 1006, 1006, 1006, 1007, 1007, 1007, 1007, 1007, 1007, 1008, 1008
+    1008, 1009, 1010, 1011, 1012, 1012, 1012, 1012, 1013, 1014, 1014, 1014
+    1014, 1015, 1016, 1016, 1016, 1016, 1016, 120, 1017, 1017, 1017, 1017
+    1017, 1017, 1018, 1019, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 1020, 1020, 1020, 1020, 1020
+    1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020
+    1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020
+    1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1021, 120, 1020, 
+    1020, 1022, 120, 1020, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 1023, 1024, 1025, 1025
+    1025, 1025, 1026, 1027, 1028, 1028, 1029, 1030, 1031, 1031, 1032, 1033
+    1034, 1034, 1034, 1035, 1036, 1037, 120, 120, 120, 120, 120, 120, 1038
+    1038, 1039, 1040, 1041, 1041, 1042, 1043, 1044, 1044, 1044, 1045, 120
+    120, 120, 120, 120, 120, 120, 120, 1046, 1046, 1046, 1046, 1047, 1047
+    1047, 1048, 1049, 1049, 1050, 1049, 1049, 1049, 1049, 1049, 1051, 1052
+    1053, 1054, 1055, 1055, 1056, 1057, 1058, 120, 1059, 1060, 1061, 1061
+    1061, 1062, 1063, 1063, 1063, 1064, 120, 120, 120, 120, 1065, 1066, 1065
+    1065, 1067, 1068, 1069, 120, 1070, 1070, 1070, 1070, 1070, 1070, 1071
+    1072, 1073, 1073, 1074, 1075, 1076, 1076, 1077, 1078, 1079, 1079, 1080
+    1081, 120, 1082, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1083
+    1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1084, 120, 120, 120, 120, 
+    120, 120, 1085, 1085, 1085, 1085, 1085, 1085, 1086, 120, 1087, 1087
+    1087, 1087, 1087, 1087, 1088, 1089, 120, 120, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 1033, 1033, 1033, 1034, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 1035, 1036, 1036, 1036, 1036, 1036, 
-    1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 120, 1044, 1045, 1046, 
-    1046, 1046, 1046, 1046, 1047, 1048, 1049, 120, 1050, 1050, 1050, 1051, 
-    1052, 1053, 1054, 1055, 1055, 1055, 1056, 1057, 1058, 1059, 1060, 120, 
-    1061, 1061, 1061, 1061, 1062, 120, 1063, 1064, 1064, 1064, 1064, 1064, 
-    1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 120, 1074, 1074, 
-    1075, 1074, 1074, 1076, 1077, 1078, 120, 120, 120, 120, 120, 120, 120, 
-    120, 1079, 1080, 1081, 1082, 1081, 1083, 1084, 1084, 1084, 1084, 1084, 
-    1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1093, 1094, 1095, 
-    1096, 1097, 1098, 1099, 1100, 1101, 1102, 1102, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 1090, 1090, 1090, 1091, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    1103, 1103, 1103, 1103, 1103, 1103, 1104, 1105, 1106, 120, 1107, 1108, 
+    120, 1092, 1093, 1093, 1093, 1093, 1093, 1093, 1094, 1095, 1096, 1097, 
+    1098, 1099, 1100, 120, 1101, 1102, 1103, 1103, 1103, 1103, 1103, 1104, 
+    1105, 1106, 120, 1107, 1107, 1107, 1108, 1109, 1110, 1111, 1112, 1112, 
+    1112, 1113, 1114, 1115, 1116, 1117, 120, 1118, 1118, 1118, 1118, 1119, 
+    120, 1120, 1121, 1121, 1121, 1121, 1121, 1122, 1123, 1124, 1125, 1126, 
+    1127, 1128, 1129, 1130, 120, 1131, 1131, 1132, 1131, 1131, 1133, 1134, 
+    1135, 120, 120, 120, 120, 120, 120, 120, 120, 1136, 1137, 1138, 1139, 
+    1138, 1140, 1141, 1141, 1141, 1141, 1141, 1142, 1143, 1144, 1145, 1146, 
+    1147, 1148, 1149, 1150, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 
+    1158, 1159, 1159, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 1160, 1160, 1160, 1160, 1160, 1160, 1161, 
+    1162, 1163, 1164, 1165, 1166, 120, 120, 120, 120, 1167, 1167, 1167, 1167, 
+    1167, 1167, 1168, 1169, 1170, 120, 1171, 1172, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 1109, 1109, 1109, 1109, 1109, 1110, 1111
-    1112, 1113, 1114, 1114, 1115, 120, 120, 120, 120, 1116, 1116, 1116, 1116
-    1116, 1116, 1117, 1118, 1119, 120, 1120, 1121, 120, 120, 120, 120, 1122
-    1122, 1122, 1122, 1122, 1123, 1124, 120, 1125, 1126, 120, 120, 120, 120
-    120, 120, 1127, 1127, 1127, 1128, 1129, 1130, 1131, 1132, 120, 120, 120, 
+    120, 1173, 1173, 1173, 1173, 1173, 1174, 1175, 1176, 1177, 1178, 1179
+    1180, 120, 120, 120, 120, 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1183
+    1184, 120, 1185, 1186, 1187, 1188, 120, 120, 1189, 1189, 1189, 1189
+    1189, 1190, 1191, 120, 1192, 1193, 120, 120, 120, 120, 120, 120, 1194
+    1194, 1194, 1195, 1196, 1197, 1198, 1199, 120, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1133
-    1133, 1133, 1133, 1134, 1134, 1134, 1134, 1135, 1136, 1137, 1138, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1200, 1200, 1200, 1200
+    1201, 1201, 1201, 1201, 1202, 1203, 1204, 1205, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 1139, 1139, 1139, 1139, 
-    1139, 1139, 1139, 1140, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 
-    1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 
-    1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 
-    1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 
-    1141, 1141, 1141, 1141, 1141, 1141, 1141, 1142, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 1143, 1143, 1143, 1143, 1143, 1143, 
-    1143, 1143, 1143, 1143, 1143, 1143, 1143, 1144, 1145, 120, 1141, 1141, 
-    1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 
-    1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1146, 120, 
+    120, 120, 120, 120, 120, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1207, 
+    1208, 1209, 1208, 1208, 1208, 1210, 1211, 1212, 1213, 120, 1214, 1215, 
+    1216, 1217, 1218, 1219, 1219, 1219, 1220, 1221, 1221, 1222, 1223, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 1224, 1224, 1224, 1224, 1224, 
+    1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 
+    1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 
+    1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 
+    1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1225, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1226, 1226, 1226, 
+    1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1227, 1228, 
+    120, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 
+    1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 
+    1224, 1229, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1230, 1230, 1230, 
+    1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 
+    1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 
+    1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 
+    1230, 1230, 1230, 1230, 1231, 1230, 1230, 1230, 1230, 1232, 1233, 1230, 
+    1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 
+    1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 
+    1230, 1230, 1230, 1230, 1234, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 
+    1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 
+    1230, 1230, 1235, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 1147, 1147, 1147, 1147, 1147, 
-    1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 
-    1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 
-    1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1148, 120, 120, 120, 120, 
+    120, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 
+    1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 
+    1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 
+    1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 
+    1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1237, 1236, 
+    1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 
+    1236, 1238, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 826, 826, 826, 
+    826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 
+    826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 
+    826, 826, 826, 826, 826, 826, 826, 826, 1239, 1240, 1240, 1240, 1241, 
+    1242, 1243, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    1244, 1244, 1244, 1245, 1246, 120, 1247, 1247, 1247, 1247, 1247, 1247, 
+    1248, 1249, 1250, 120, 1251, 1252, 1253, 1247, 1247, 1254, 1247, 1247, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 1149, 1149, 1149, 1149, 1149, 
-    1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 
-    1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 
-    1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1150, 
+    1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1256, 120, 1257, 1258, 
+    1258, 1258, 1258, 1259, 120, 1260, 1261, 1262, 120, 120, 120, 120, 120, 
+    120, 120, 120, 1263, 120, 120, 120, 1264, 1264, 1264, 1264, 1264, 1264, 
+    1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 
+    1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 
+    1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 
+    1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 
+    1264, 1264, 1264, 1264, 1264, 1264, 1264, 1265, 120, 120, 1264, 1264, 
+    1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 
+    1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 
+    1264, 1264, 1264, 1264, 1266, 120, 1267, 120, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 776, 776, 776, 776, 776, 
-    776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 
-    776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 
-    776, 776, 776, 776, 776, 776, 1151, 1152, 1152, 1152, 1153, 1154, 1155, 
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1156, 1156, 
-    1156, 1157, 1158, 120, 1159, 1159, 1159, 1159, 1159, 1159, 1160, 1161, 
-    1162, 120, 1163, 1164, 1165, 1159, 1159, 1166, 1159, 1159, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1167, 1167, 1167, 
-    1167, 1167, 1167, 1167, 1167, 1168, 120, 1169, 1170, 1170, 1170, 1170, 
-    1171, 120, 1172, 1173, 1174, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 1175, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1268, 1268, 1268, 
+    1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1269, 1268, 
+    1270, 1268, 1271, 1268, 1272, 1273, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 
+    615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 
+    615, 615, 615, 615, 615, 615, 1274, 120, 615, 615, 615, 615, 1275, 1276, 
+    615, 615, 615, 615, 615, 615, 1277, 1278, 1279, 1280, 1281, 1282, 615, 
+    615, 615, 1283, 615, 615, 615, 615, 615, 615, 615, 1284, 120, 120, 980, 
+    980, 980, 980, 980, 980, 980, 980, 1285, 120, 120, 120, 120, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 1176, 1176, 1176, 1176, 1176, 1176, 
-    1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177, 1176, 1178, 1176, 1179, 
-    1176, 1180, 1181, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 
-    607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, 
-    607, 607, 1182, 120, 607, 607, 607, 607, 1183, 1184, 607, 607, 607, 607, 
-    607, 607, 1185, 1186, 1187, 1188, 1189, 1190, 607, 607, 607, 1191, 607, 
-    607, 607, 607, 607, 607, 607, 1192, 120, 120, 927, 927, 927, 927, 927, 
-    927, 927, 927, 1193, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 572, 
-    572, 572, 572, 572, 572, 572, 572, 572, 572, 614, 120, 922, 922, 1194, 
+    120, 120, 120, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 623, 
+    120, 975, 975, 1286, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 120, 1287, 1287, 1287, 1288, 1289, 1289, 
+    1290, 1287, 1287, 1291, 1292, 1289, 1289, 1287, 1287, 1287, 1288, 1289, 
+    1289, 1293, 1294, 1295, 1291, 1296, 1297, 1289, 1287, 1287, 1287, 1288, 
+    1289, 1289, 1298, 1299, 1300, 1301, 1289, 1289, 1289, 1302, 1303, 1304, 
+    1305, 1289, 1289, 1290, 1287, 1287, 1291, 1289, 1289, 1289, 1287, 1287, 
+    1287, 1288, 1289, 1289, 1290, 1287, 1287, 1291, 1289, 1289, 1289, 1287, 
+    1287, 1287, 1288, 1289, 1289, 1290, 1287, 1287, 1291, 1289, 1289, 1289, 
+    1287, 1287, 1287, 1288, 1289, 1289, 1306, 1287, 1287, 1287, 1307, 1289, 
+    1289, 1308, 1309, 1287, 1287, 1310, 1289, 1289, 1311, 1290, 1287, 1287, 
+    1312, 1289, 1289, 1313, 1314, 1287, 1287, 1315, 1289, 1289, 1289, 1316, 
+    1287, 1287, 1287, 1307, 1289, 1289, 1308, 1317, 1318, 1318, 1318, 1318, 
+    1318, 1318, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 
+    1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 
+    1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1320, 1320, 
+    1320, 1320, 1320, 1320, 1321, 1322, 1320, 1320, 1320, 1320, 1320, 1323, 
+    1324, 1319, 1325, 1326, 120, 1327, 1328, 1320, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 1329, 1330, 1330, 1331, 1332, 1333, 120, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 1195, 1195, 1195, 1196, 1197, 1197, 1198, 1195, 1195, 
-    1199, 1200, 1197, 1197, 1195, 1195, 1195, 1196, 1197, 1197, 1201, 1202, 
-    1203, 1199, 1204, 1205, 1197, 1195, 1195, 1195, 1196, 1197, 1197, 1206, 
-    1207, 1208, 1209, 1197, 1197, 1197, 1210, 1211, 1212, 1213, 1197, 1197, 
-    1198, 1195, 1195, 1199, 1197, 1197, 1197, 1195, 1195, 1195, 1196, 1197, 
-    1197, 1198, 1195, 1195, 1199, 1197, 1197, 1197, 1195, 1195, 1195, 1196, 
-    1197, 1197, 1198, 1195, 1195, 1199, 1197, 1197, 1197, 1195, 1195, 1195, 
-    1196, 1197, 1197, 1214, 1195, 1195, 1195, 1215, 1197, 1197, 1216, 1217, 
-    1195, 1195, 1218, 1197, 1197, 1219, 1198, 1195, 1195, 1220, 1197, 1197, 
-    1221, 1222, 1195, 1195, 1223, 1197, 1197, 1197, 1224, 1195, 1195, 1195, 
-    1215, 1197, 1197, 1216, 1225, 1226, 1226, 1226, 1226, 1226, 1226, 1227, 
-    1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 
-    1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 1227, 
-    1227, 1227, 1227, 1227, 1227, 1227, 1227, 1228, 1228, 1228, 1228, 1228, 
-    1228, 1229, 1230, 1228, 1228, 1228, 1228, 1228, 1231, 1232, 1227, 1233, 
-    1234, 120, 1235, 1236, 1228, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 
-    1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 
-    1237, 1238, 1239, 1240, 120, 120, 120, 120, 120, 1241, 128, 128, 128, 
-    1242, 1243, 1244, 1245, 1246, 1247, 1242, 1248, 1242, 1244, 1244, 1249, 
-    128, 1250, 128, 1251, 1252, 1250, 128, 1251, 120, 120, 120, 120, 120, 
-    120, 1253, 120, 572, 572, 572, 572, 572, 929, 572, 572, 572, 572, 572, 
-    572, 572, 572, 572, 572, 572, 572, 929, 120, 572, 614, 1254, 572, 1254, 
-    572, 1254, 572, 572, 572, 681, 120, 616, 1255, 618, 618, 618, 1256, 618, 
-    618, 618, 618, 618, 618, 618, 1257, 618, 618, 618, 618, 618, 1258, 120, 
-    120, 120, 120, 120, 120, 120, 120, 1259, 607, 607, 607, 1260, 120, 741, 
-    741, 741, 741, 741, 1261, 741, 1262, 1263, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1334, 1334, 1334, 1334, 
+    1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 
+    1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1335, 1336, 1337, 120, 
+    120, 120, 120, 120, 1338, 1338, 1338, 1338, 1339, 1340, 1340, 1340, 1341, 
+    1342, 1343, 1344, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
+    120, 120, 120, 120, 120, 120, 120, 120, 120, 1345, 128, 128, 128, 1346, 
+    1347, 1348, 1349, 1350, 1351, 1346, 1352, 1346, 1348, 1348, 1353, 128, 
+    1354, 128, 1355, 1356, 1354, 128, 1355, 120, 120, 120, 120, 120, 120, 
+    1357, 120, 1358, 1359, 1359, 1359, 1359, 1360, 1359, 1359, 1359, 1359, 
+    1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1360, 1361, 1359, 1362, 
+    1363, 1359, 1363, 1364, 1363, 1359, 1359, 1359, 1365, 1361, 626, 1366, 
+    628, 628, 628, 1367, 628, 628, 628, 628, 628, 628, 628, 1368, 628, 628, 
+    628, 1369, 1370, 1371, 628, 1372, 1361, 1361, 1361, 1361, 1361, 1361, 
+    1373, 1374, 1374, 1374, 1375, 1361, 790, 790, 790, 790, 790, 1376, 790, 
+    1377, 1378, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 
+    1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 757, 
+    757, 757, 757, 1379, 1380, 1381, 757, 757, 757, 757, 757, 757, 757, 757, 
+    1382, 1383, 757, 1384, 1385, 757, 757, 1386, 1387, 1388, 1389, 1384, 
+    1359, 757, 757, 1390, 1391, 757, 757, 757, 757, 757, 757, 757, 1392, 
+    1393, 1394, 1395, 757, 1396, 1397, 1394, 1398, 1399, 757, 757, 757, 1400, 
+    1401, 1402, 757, 757, 757, 757, 757, 757, 757, 757, 1403, 1404, 757, 
+    1405, 649, 1406, 757, 1407, 1408, 579, 1409, 757, 757, 757, 1359, 1410, 
+    1411, 1359, 1359, 1412, 1359, 1358, 1359, 1359, 1359, 1359, 1359, 1413, 
+    1414, 1359, 1359, 1413, 1415, 757, 757, 757, 757, 757, 757, 757, 757, 
+    1416, 1417, 579, 579, 579, 579, 1418, 1419, 757, 757, 757, 757, 1420, 
+    757, 1421, 757, 1422, 1358, 1423, 1361, 1359, 1424, 1425, 1361, 579, 579, 
+    579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 1426, 1361, 
+    579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 1427, 1361, 1361, 1361, 
+    1361, 1361, 579, 1426, 579, 579, 579, 579, 579, 579, 579, 1361, 579, 
+    1428, 579, 579, 579, 579, 579, 1361, 579, 579, 579, 1429, 1361, 1361, 
+    1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 757, 1430, 
+    1431, 1361, 1432, 1433, 757, 1434, 757, 1435, 1361, 1361, 1361, 1361, 
+    757, 757, 1436, 1361, 1361, 1361, 1361, 1361, 1437, 1361, 1361, 1361, 
+    1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 
+    1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 
+    1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 
+    1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 
+    1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 
+    1361, 1361, 1361, 1361, 1361, 1361, 1361, 1438, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 1439, 810, 810, 810, 810, 810, 808, 
+    808, 808, 808, 808, 808, 1440, 810, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 809, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 
+    808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 808, 917, 
+    810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 
+    810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 
+    810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 
+    810, 808, 808, 808, 809, 810, 810, 810, 810, 810, 810, 810, 810, 810, 
+    810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 
+    810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 
+    810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, 
+    810, 810, 810, 810, 810, 810, 810, 810, 1441, 1442, 120, 120, 120, 1443, 
+    1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 120, 
     120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 572, 572, 572, 1264, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 1265, 572, 572, 572, 
-    572, 1266, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 1267, 120, 572, 
-    1268, 929, 120, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 572, 572, 929, 120, 572, 572, 572, 572, 572, 572, 572, 572, 572, 
-    572, 1268, 120, 120, 120, 120, 120, 572, 929, 572, 572, 572, 572, 572, 
-    572, 572, 120, 572, 684, 572, 572, 572, 572, 572, 120, 572, 572, 572, 
-    681, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 572, 
-    1267, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 1268, 
-    120, 120, 120, 120, 120, 120, 120, 1267, 120, 120, 120, 120, 120, 120, 
-    120, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 1269, 
-    760, 760, 760, 760, 760, 758, 758, 758, 758, 758, 758, 1270, 760, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 
-    758, 758, 758, 758, 758, 864, 760, 760, 760, 760, 760, 760, 760, 760, 
-    760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 
-    760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 
-    760, 760, 760, 760, 760, 760, 760, 758, 758, 758, 759, 760, 760, 760, 
-    760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 
-    760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 
-    760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 
-    760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 
-    1271, 1272, 120, 120, 120, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 
-    1273, 1273, 1273, 1273, 1273, 120, 120, 120, 120, 120, 120, 120, 120, 
-    120, 120, 120, 120, 120, 120, 120, 120, 879, 879, 879, 879, 879, 879, 
-    879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 
-    879, 879, 879, 879, 879, 879, 879, 879, 879, 879, 120, 120, 863, 863, 
-    863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 
-    863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 863, 
-    863, 1274, 
+    120, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 
+    932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 932, 
+    932, 932, 932, 120, 120, 916, 916, 916, 916, 916, 916, 916, 916, 916, 
+    916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 
+    916, 916, 916, 916, 916, 916, 916, 916, 1444, 
 };
 
 static const unsigned short index2[] = {
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 4, 3, 1, 1, 1, 1, 1, 1, 3, 3, 3, 2, 
-    5, 6, 6, 7, 8, 7, 6, 6, 9, 10, 6, 11, 12, 13, 12, 12, 14, 14, 14, 14, 14, 
-    14, 14, 14, 14, 14, 12, 6, 15, 16, 15, 6, 6, 17, 17, 17, 17, 17, 17, 17, 
-    17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 9, 6, 10, 18, 19, 18, 20, 20, 
-    20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 9, 16, 
-    10, 16, 1, 1, 1, 1, 1, 1, 3, 1, 1, 21, 22, 8, 8, 23, 8, 24, 22, 25, 26, 
-    27, 28, 16, 29, 30, 18, 31, 32, 33, 33, 25, 34, 22, 22, 25, 33, 27, 35, 
-    36, 36, 36, 22, 37, 37, 37, 37, 37, 37, 38, 37, 37, 37, 37, 37, 37, 37, 
-    37, 37, 38, 37, 37, 37, 37, 37, 37, 39, 38, 37, 37, 37, 37, 37, 38, 40, 
-    40, 40, 41, 41, 41, 41, 40, 41, 40, 40, 40, 41, 40, 40, 41, 41, 40, 41, 
-    40, 40, 41, 41, 41, 39, 40, 40, 40, 41, 40, 41, 40, 41, 37, 40, 37, 41, 
-    37, 41, 37, 41, 37, 41, 37, 41, 37, 41, 37, 41, 37, 40, 37, 40, 37, 41, 
-    37, 41, 37, 41, 37, 40, 37, 41, 37, 41, 37, 41, 37, 41, 37, 41, 38, 40, 
-    37, 40, 38, 40, 37, 41, 37, 41, 40, 37, 41, 37, 41, 37, 41, 38, 40, 38, 
-    40, 37, 40, 37, 41, 37, 40, 40, 38, 40, 37, 40, 37, 41, 37, 41, 38, 40, 
-    37, 41, 37, 41, 37, 37, 41, 37, 41, 37, 41, 41, 41, 37, 37, 41, 37, 41, 
-    37, 37, 41, 37, 37, 37, 41, 41, 37, 37, 37, 37, 41, 37, 37, 41, 37, 37, 
-    37, 41, 41, 41, 37, 37, 41, 37, 37, 41, 37, 41, 37, 41, 37, 37, 41, 37, 
-    41, 41, 37, 41, 37, 37, 41, 37, 37, 37, 41, 37, 41, 37, 37, 41, 41, 42, 
-    37, 41, 41, 41, 42, 42, 42, 42, 37, 43, 41, 37, 43, 41, 37, 43, 41, 37, 
-    40, 37, 40, 37, 40, 37, 40, 37, 40, 37, 40, 37, 40, 37, 40, 41, 37, 41, 
-    41, 37, 43, 41, 37, 41, 37, 37, 37, 41, 37, 41, 41, 41, 41, 41, 41, 41, 
-    37, 37, 41, 37, 37, 41, 41, 37, 41, 37, 37, 37, 37, 41, 41, 40, 41, 41, 
-    41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 41, 
-    41, 41, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, 45, 46, 46, 46, 46, 46, 
-    46, 46, 47, 47, 25, 47, 45, 48, 45, 48, 48, 48, 45, 48, 45, 45, 49, 46, 
-    47, 47, 47, 47, 47, 47, 25, 25, 25, 25, 47, 25, 47, 25, 44, 44, 44, 44, 
-    44, 47, 47, 47, 47, 47, 50, 50, 45, 47, 46, 47, 47, 47, 47, 47, 47, 47, 
-    47, 47, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 53, 53, 
-    53, 53, 52, 54, 53, 53, 53, 53, 53, 55, 55, 53, 53, 53, 53, 55, 55, 53, 
-    53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 56, 56, 56, 56, 56, 53, 53, 53, 
-    53, 51, 51, 51, 51, 51, 51, 51, 51, 57, 51, 53, 53, 53, 51, 51, 51, 53, 
-    53, 58, 51, 51, 51, 53, 53, 53, 53, 51, 52, 53, 53, 51, 59, 60, 60, 59, 
-    60, 60, 59, 51, 51, 51, 51, 51, 61, 62, 61, 62, 45, 63, 61, 62, 64, 64, 
-    65, 62, 62, 62, 66, 61, 64, 64, 64, 64, 63, 47, 61, 66, 61, 61, 61, 64, 
-    61, 64, 61, 61, 62, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 
-    67, 67, 67, 67, 64, 67, 67, 67, 67, 67, 67, 67, 61, 61, 62, 62, 62, 62, 
-    62, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 
-    62, 68, 68, 68, 68, 68, 68, 68, 62, 62, 62, 62, 62, 61, 62, 62, 61, 61, 
-    61, 62, 62, 62, 61, 62, 61, 62, 61, 62, 61, 62, 61, 62, 69, 70, 69, 70, 
-    69, 70, 69, 70, 69, 70, 69, 70, 69, 70, 62, 62, 62, 62, 61, 62, 71, 61, 
-    62, 61, 61, 62, 62, 61, 61, 61, 72, 73, 72, 72, 72, 72, 72, 72, 72, 72, 
-    72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, 74, 
-    74, 74, 74, 74, 75, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 
-    75, 75, 72, 75, 72, 75, 72, 75, 72, 75, 72, 75, 76, 77, 77, 78, 78, 77, 
-    79, 79, 72, 75, 72, 75, 72, 75, 72, 72, 75, 72, 75, 72, 75, 72, 75, 72, 
-    75, 72, 75, 72, 75, 75, 64, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 
-    80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 64, 64, 81, 82, 82, 82, 82, 
-    82, 82, 64, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 
-    64, 84, 85, 64, 64, 86, 86, 87, 64, 88, 89, 89, 89, 89, 88, 89, 89, 89, 
-    90, 88, 89, 89, 89, 89, 89, 89, 88, 88, 88, 88, 88, 88, 89, 89, 88, 89, 
-    89, 90, 91, 89, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 101, 102, 103, 
-    104, 105, 106, 107, 108, 109, 107, 89, 88, 107, 100, 64, 64, 64, 64, 64, 
-    64, 64, 64, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 64, 
-    64, 64, 64, 64, 110, 110, 110, 107, 107, 64, 64, 64, 111, 111, 111, 111, 
-    111, 112, 113, 113, 114, 115, 115, 116, 117, 118, 119, 119, 120, 120, 
-    120, 120, 120, 120, 120, 120, 121, 122, 123, 124, 125, 64, 118, 124, 126, 
-    126, 126, 126, 126, 126, 126, 126, 127, 126, 126, 126, 126, 126, 126, 
-    126, 126, 126, 126, 128, 129, 130, 131, 132, 133, 134, 135, 78, 78, 136, 
-    137, 120, 120, 120, 120, 120, 137, 120, 120, 137, 138, 138, 138, 138, 
-    138, 138, 138, 138, 138, 138, 115, 139, 139, 118, 126, 126, 140, 126, 
-    126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 118, 126, 120, 120, 
-    120, 120, 120, 120, 120, 112, 119, 120, 120, 120, 120, 137, 120, 141, 
-    141, 120, 120, 119, 137, 120, 120, 137, 126, 126, 142, 142, 142, 142, 
-    142, 142, 142, 142, 142, 142, 126, 126, 126, 143, 143, 126, 144, 144, 
-    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 64, 145, 146, 
-    147, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 
-    146, 148, 149, 148, 148, 149, 148, 148, 149, 149, 149, 148, 149, 149, 
-    148, 149, 148, 148, 148, 149, 148, 149, 148, 149, 148, 149, 148, 148, 64, 
-    64, 146, 146, 146, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 
-    150, 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 
-    150, 64, 64, 64, 64, 64, 64, 152, 152, 152, 152, 152, 152, 152, 152, 152, 
-    152, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 
-    153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 155, 154, 156, 
-    156, 157, 158, 158, 158, 156, 64, 64, 64, 64, 64, 159, 159, 159, 159, 
-    159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 160, 160, 160, 160, 
-    161, 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, 160, 160, 160, 
-    161, 160, 160, 160, 160, 160, 64, 64, 162, 162, 162, 162, 162, 162, 162, 
-    162, 162, 162, 162, 162, 162, 162, 162, 64, 163, 163, 163, 163, 163, 163, 
-    163, 163, 163, 164, 164, 164, 64, 64, 165, 64, 126, 126, 126, 126, 126, 
-    64, 64, 64, 64, 64, 64, 137, 120, 120, 137, 120, 120, 137, 120, 120, 120, 
-    137, 137, 137, 166, 167, 168, 120, 120, 120, 137, 120, 120, 137, 137, 
-    120, 120, 120, 120, 120, 169, 169, 169, 170, 171, 171, 171, 171, 171, 
-    171, 171, 171, 171, 171, 171, 171, 171, 171, 169, 170, 172, 171, 170, 
-    170, 170, 169, 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 
-    173, 170, 170, 171, 78, 136, 174, 174, 169, 169, 169, 171, 171, 169, 169, 
-    84, 84, 175, 175, 175, 175, 175, 175, 175, 175, 175, 175, 176, 177, 171, 
-    171, 171, 171, 171, 171, 178, 179, 180, 180, 64, 178, 178, 178, 178, 178, 
-    178, 178, 178, 64, 64, 178, 178, 64, 64, 178, 178, 178, 178, 178, 178, 
-    178, 178, 178, 178, 178, 178, 178, 178, 64, 178, 178, 178, 178, 178, 178, 
-    178, 64, 178, 64, 64, 64, 178, 178, 178, 178, 64, 64, 181, 178, 180, 180, 
-    180, 179, 179, 179, 179, 64, 64, 180, 180, 64, 64, 180, 180, 182, 178, 
-    64, 64, 64, 64, 64, 64, 64, 64, 180, 64, 64, 64, 64, 178, 178, 64, 178, 
-    178, 178, 179, 179, 64, 64, 183, 183, 183, 183, 183, 183, 183, 183, 183, 
-    183, 178, 178, 184, 184, 185, 185, 185, 185, 185, 185, 186, 184, 64, 64, 
-    64, 64, 64, 187, 187, 188, 64, 189, 189, 189, 189, 189, 189, 64, 64, 64, 
-    64, 189, 189, 64, 64, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 
-    189, 189, 189, 189, 64, 189, 189, 189, 189, 189, 189, 189, 64, 189, 189, 
-    64, 189, 189, 64, 189, 189, 64, 64, 190, 64, 188, 188, 188, 187, 187, 64, 
-    64, 64, 64, 187, 187, 64, 64, 187, 187, 191, 64, 64, 64, 187, 64, 64, 64, 
-    64, 64, 64, 64, 189, 189, 189, 189, 64, 189, 64, 64, 64, 64, 64, 64, 64, 
-    192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 187, 187, 189, 189, 
-    189, 187, 64, 64, 64, 193, 193, 194, 64, 195, 195, 195, 195, 195, 195, 
-    195, 195, 195, 64, 195, 195, 195, 64, 195, 195, 195, 195, 195, 195, 195, 
-    195, 195, 195, 195, 195, 195, 195, 64, 195, 195, 195, 195, 195, 195, 195, 
-    64, 195, 195, 64, 195, 195, 195, 195, 195, 64, 64, 196, 195, 194, 194, 
-    194, 193, 193, 193, 193, 193, 64, 193, 193, 194, 64, 194, 194, 197, 64, 
-    64, 195, 64, 64, 64, 64, 64, 64, 64, 195, 195, 193, 193, 64, 64, 198, 
-    198, 198, 198, 198, 198, 198, 198, 198, 198, 199, 200, 64, 64, 64, 64, 
-    64, 64, 64, 195, 64, 64, 64, 64, 64, 64, 64, 201, 202, 202, 64, 203, 203, 
-    203, 203, 203, 203, 203, 203, 64, 64, 203, 203, 64, 64, 203, 203, 203, 
-    203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 64, 203, 203, 203, 
-    203, 203, 203, 203, 64, 203, 203, 64, 203, 203, 203, 203, 203, 64, 64, 
-    204, 203, 202, 201, 202, 201, 201, 201, 201, 64, 64, 202, 202, 64, 64, 
-    202, 202, 205, 64, 64, 64, 64, 64, 64, 64, 64, 201, 202, 64, 64, 64, 64, 
-    203, 203, 64, 203, 203, 203, 201, 201, 64, 64, 206, 206, 206, 206, 206, 
-    206, 206, 206, 206, 206, 207, 203, 208, 208, 208, 208, 208, 208, 64, 64, 
-    209, 210, 64, 210, 210, 210, 210, 210, 210, 64, 64, 64, 210, 210, 210, 
-    64, 210, 210, 210, 210, 64, 64, 64, 210, 210, 64, 210, 64, 210, 210, 64, 
-    64, 64, 210, 210, 64, 64, 64, 210, 210, 210, 210, 210, 210, 210, 210, 
-    210, 210, 64, 64, 64, 64, 211, 211, 209, 211, 211, 64, 64, 64, 211, 211, 
-    211, 64, 211, 211, 211, 212, 64, 64, 210, 64, 64, 64, 64, 64, 64, 211, 
-    64, 64, 64, 64, 64, 64, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 
-    214, 214, 214, 215, 215, 215, 215, 215, 215, 216, 215, 64, 64, 64, 64, 
-    64, 217, 218, 218, 218, 64, 219, 219, 219, 219, 219, 219, 219, 219, 64, 
-    219, 219, 219, 64, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 
-    219, 219, 219, 219, 219, 64, 64, 64, 219, 217, 217, 217, 218, 218, 218, 
-    218, 64, 217, 217, 217, 64, 217, 217, 217, 220, 64, 64, 64, 64, 64, 64, 
-    64, 221, 222, 64, 219, 219, 219, 64, 64, 64, 64, 64, 219, 219, 217, 217, 
-    64, 64, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, 224, 224, 
-    224, 224, 224, 224, 225, 64, 226, 227, 227, 64, 228, 228, 228, 228, 228, 
-    228, 228, 228, 64, 228, 228, 228, 64, 228, 228, 228, 228, 228, 228, 228, 
-    228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 64, 228, 228, 228, 
-    228, 228, 64, 64, 229, 228, 227, 230, 227, 227, 227, 227, 227, 64, 230, 
-    227, 227, 64, 227, 227, 226, 231, 64, 64, 64, 64, 64, 64, 64, 227, 227, 
-    64, 64, 64, 64, 64, 64, 64, 228, 64, 228, 228, 226, 226, 64, 64, 232, 
-    232, 232, 232, 232, 232, 232, 232, 232, 232, 64, 228, 228, 64, 64, 64, 
-    64, 64, 64, 233, 234, 234, 64, 235, 235, 235, 235, 235, 235, 235, 235, 
-    64, 235, 235, 235, 64, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 
-    235, 235, 235, 235, 235, 235, 235, 64, 64, 235, 234, 234, 234, 233, 233, 
-    233, 233, 64, 234, 234, 234, 64, 234, 234, 234, 236, 235, 64, 64, 64, 64, 
-    64, 64, 64, 64, 234, 64, 64, 64, 64, 64, 64, 64, 235, 235, 235, 233, 233, 
-    64, 64, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 238, 238, 238, 
-    238, 238, 238, 64, 64, 64, 239, 235, 235, 235, 235, 235, 235, 64, 64, 
-    240, 240, 64, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 
-    241, 241, 241, 241, 241, 241, 64, 64, 64, 241, 241, 241, 241, 241, 241, 
-    241, 241, 64, 241, 241, 241, 241, 241, 241, 241, 241, 241, 64, 241, 64, 
-    64, 64, 64, 242, 64, 64, 64, 64, 240, 240, 240, 243, 243, 243, 64, 243, 
-    64, 240, 240, 240, 240, 240, 240, 240, 240, 64, 64, 64, 64, 64, 64, 244, 
-    244, 244, 244, 244, 244, 244, 244, 244, 244, 64, 64, 240, 240, 245, 64, 
-    64, 64, 64, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 
-    246, 246, 246, 246, 247, 246, 246, 247, 247, 247, 247, 248, 248, 249, 64, 
-    64, 64, 64, 250, 246, 246, 246, 246, 246, 246, 251, 247, 252, 252, 252, 
-    252, 247, 247, 247, 253, 254, 254, 254, 254, 254, 254, 254, 254, 254, 
-    254, 253, 253, 64, 64, 64, 64, 64, 255, 255, 64, 255, 64, 64, 255, 255, 
-    64, 255, 64, 64, 255, 64, 64, 64, 64, 64, 64, 255, 255, 255, 255, 64, 
-    255, 255, 255, 255, 255, 255, 255, 64, 255, 255, 255, 64, 255, 64, 255, 
-    64, 64, 255, 255, 64, 255, 255, 255, 255, 256, 255, 255, 256, 256, 256, 
-    256, 257, 257, 64, 256, 256, 255, 64, 64, 255, 255, 255, 255, 255, 64, 
-    258, 64, 259, 259, 259, 259, 256, 256, 64, 64, 260, 260, 260, 260, 260, 
-    260, 260, 260, 260, 260, 64, 64, 255, 255, 255, 255, 261, 262, 262, 262, 
-    263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 
-    263, 262, 263, 262, 262, 262, 264, 264, 262, 262, 262, 262, 262, 262, 
-    265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 266, 266, 266, 266, 
-    266, 266, 266, 266, 266, 266, 262, 264, 262, 264, 262, 267, 268, 269, 
-    268, 269, 270, 270, 261, 261, 261, 261, 261, 261, 261, 261, 64, 261, 261, 
-    261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 64, 64, 64, 64, 271, 
-    272, 273, 274, 273, 273, 273, 273, 273, 272, 272, 272, 272, 273, 270, 
-    272, 273, 275, 275, 276, 263, 275, 275, 261, 261, 261, 261, 261, 273, 
-    273, 273, 273, 273, 273, 273, 273, 273, 273, 273, 64, 273, 273, 273, 273, 
-    273, 273, 273, 273, 273, 273, 273, 273, 64, 262, 262, 262, 262, 262, 262, 
-    262, 262, 264, 262, 262, 262, 262, 262, 262, 64, 262, 262, 263, 263, 263, 
-    263, 263, 277, 277, 277, 277, 263, 263, 64, 64, 64, 64, 64, 278, 278, 
-    278, 278, 278, 278, 278, 278, 278, 278, 278, 279, 279, 280, 280, 280, 
-    280, 279, 280, 280, 280, 280, 280, 281, 279, 282, 282, 279, 279, 280, 
-    280, 278, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 284, 284, 
-    284, 284, 284, 284, 278, 278, 278, 278, 278, 278, 279, 279, 280, 280, 
-    278, 278, 278, 278, 280, 280, 280, 278, 279, 279, 279, 278, 278, 279, 
-    279, 279, 279, 279, 279, 279, 278, 278, 278, 280, 280, 280, 280, 278, 
-    278, 278, 278, 278, 280, 279, 279, 280, 280, 279, 279, 279, 279, 279, 
-    279, 285, 278, 279, 283, 283, 279, 279, 279, 280, 286, 286, 287, 287, 
-    287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 287, 64, 287, 64, 
-    64, 64, 64, 64, 287, 64, 64, 288, 288, 288, 288, 288, 288, 288, 288, 288, 
-    288, 288, 84, 289, 288, 288, 288, 290, 290, 290, 290, 290, 290, 290, 290, 
-    291, 291, 291, 291, 291, 291, 291, 291, 292, 292, 292, 292, 292, 292, 
-    292, 292, 292, 64, 292, 292, 292, 292, 64, 64, 292, 292, 292, 292, 292, 
-    292, 292, 64, 292, 292, 292, 64, 64, 293, 293, 293, 294, 294, 294, 294, 
-    294, 294, 294, 294, 294, 295, 295, 295, 295, 295, 295, 295, 295, 295, 
-    295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 64, 64, 64, 296, 
-    296, 296, 296, 296, 296, 296, 296, 296, 296, 64, 64, 64, 64, 64, 64, 297, 
-    297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 64, 64, 
-    298, 298, 298, 298, 298, 298, 64, 64, 299, 300, 300, 300, 300, 300, 300, 
-    300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 
-    301, 301, 300, 302, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 
-    303, 303, 303, 303, 303, 303, 303, 303, 304, 305, 64, 64, 64, 306, 306, 
-    306, 306, 306, 306, 306, 306, 306, 306, 306, 84, 84, 84, 307, 307, 307, 
-    306, 306, 306, 306, 306, 306, 306, 306, 64, 64, 64, 64, 64, 64, 64, 308, 
-    308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 64, 308, 308, 
-    308, 308, 309, 309, 310, 64, 64, 64, 311, 311, 311, 311, 311, 311, 311, 
-    311, 311, 311, 312, 312, 313, 84, 84, 64, 314, 314, 314, 314, 314, 314, 
-    314, 314, 314, 314, 315, 315, 64, 64, 64, 64, 316, 316, 316, 316, 316, 
-    316, 316, 316, 316, 316, 316, 316, 316, 64, 316, 316, 316, 64, 317, 317, 
-    64, 64, 64, 64, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 
-    318, 319, 319, 320, 319, 319, 319, 319, 319, 319, 319, 320, 320, 320, 
-    320, 320, 320, 320, 320, 319, 320, 320, 319, 319, 319, 319, 319, 319, 
-    319, 319, 319, 321, 319, 322, 322, 322, 323, 322, 322, 322, 324, 318, 
-    325, 64, 64, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 64, 64, 
-    64, 64, 64, 64, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 64, 64, 
-    64, 64, 64, 64, 328, 328, 66, 66, 328, 66, 329, 328, 328, 328, 328, 330, 
-    330, 330, 331, 64, 332, 332, 332, 332, 332, 332, 332, 332, 332, 332, 64, 
-    64, 64, 64, 64, 64, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 
-    333, 334, 333, 333, 333, 333, 333, 335, 333, 64, 64, 64, 64, 64, 300, 
-    300, 300, 300, 300, 300, 64, 64, 336, 336, 336, 336, 336, 336, 336, 336, 
-    336, 336, 336, 336, 336, 336, 336, 64, 337, 337, 337, 338, 338, 338, 338, 
-    337, 337, 338, 338, 338, 64, 64, 64, 64, 338, 338, 337, 338, 338, 338, 
-    338, 338, 338, 339, 340, 341, 64, 64, 64, 64, 342, 64, 64, 64, 343, 343, 
-    344, 344, 344, 344, 344, 344, 344, 344, 344, 344, 345, 345, 345, 345, 
-    345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 64, 64, 345, 345, 345, 
-    345, 345, 64, 64, 64, 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, 
-    346, 346, 64, 64, 64, 64, 346, 346, 64, 64, 64, 64, 64, 64, 347, 347, 
-    347, 347, 347, 347, 347, 347, 347, 347, 348, 64, 64, 64, 349, 349, 350, 
-    350, 350, 350, 350, 350, 350, 350, 351, 351, 351, 351, 351, 351, 351, 
-    351, 351, 351, 351, 351, 351, 351, 351, 352, 353, 354, 354, 355, 64, 64, 
-    356, 356, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 
-    357, 358, 359, 358, 359, 359, 359, 359, 359, 359, 359, 64, 360, 358, 359, 
-    358, 358, 359, 359, 359, 359, 359, 359, 359, 359, 358, 358, 358, 358, 
-    358, 358, 359, 359, 361, 361, 361, 361, 361, 361, 361, 361, 64, 64, 362, 
-    363, 363, 363, 363, 363, 363, 363, 363, 363, 363, 64, 64, 64, 64, 64, 64, 
-    364, 364, 364, 364, 364, 364, 364, 365, 364, 364, 364, 364, 364, 364, 64, 
-    64, 78, 78, 78, 78, 78, 136, 136, 136, 136, 136, 136, 78, 78, 136, 366, 
-    64, 367, 367, 367, 367, 368, 369, 369, 369, 369, 369, 369, 369, 369, 369, 
-    369, 369, 369, 369, 369, 369, 370, 368, 367, 367, 367, 367, 367, 368, 
-    367, 368, 368, 368, 368, 368, 367, 368, 371, 369, 369, 369, 369, 369, 
-    369, 369, 64, 64, 64, 64, 372, 372, 372, 372, 372, 372, 372, 372, 372, 
-    372, 373, 373, 373, 373, 373, 373, 373, 374, 374, 374, 374, 374, 374, 
-    374, 374, 374, 374, 375, 376, 375, 375, 375, 375, 375, 375, 375, 374, 
-    374, 374, 374, 374, 374, 374, 374, 374, 64, 64, 64, 377, 377, 378, 379, 
-    379, 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, 378, 
-    377, 377, 377, 377, 378, 378, 377, 377, 380, 381, 377, 377, 379, 379, 
-    382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 379, 379, 379, 379, 
-    379, 379, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, 
-    383, 383, 384, 385, 386, 386, 385, 385, 385, 386, 385, 386, 386, 386, 
-    387, 387, 64, 64, 64, 64, 64, 64, 64, 64, 388, 388, 388, 388, 389, 389, 
-    389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 390, 390, 390, 390, 
-    390, 390, 390, 390, 391, 391, 391, 391, 391, 391, 391, 391, 390, 390, 
-    391, 392, 64, 64, 64, 393, 393, 393, 393, 393, 394, 394, 394, 394, 394, 
-    394, 394, 394, 394, 394, 64, 64, 64, 389, 389, 389, 395, 395, 395, 395, 
-    395, 395, 395, 395, 395, 395, 396, 396, 396, 396, 396, 396, 396, 396, 
-    396, 396, 396, 396, 396, 396, 397, 397, 397, 397, 397, 397, 398, 398, 
-    399, 399, 399, 399, 399, 399, 399, 399, 78, 78, 78, 84, 400, 136, 136, 
-    136, 136, 136, 78, 78, 136, 136, 136, 136, 78, 401, 400, 400, 400, 400, 
-    400, 400, 400, 402, 402, 402, 402, 136, 402, 402, 402, 402, 401, 401, 78, 
-    402, 402, 64, 78, 78, 64, 64, 64, 64, 64, 64, 41, 41, 41, 41, 41, 41, 62, 
-    62, 62, 62, 62, 75, 44, 44, 44, 44, 44, 44, 44, 44, 44, 65, 65, 65, 65, 
-    65, 44, 44, 44, 44, 65, 65, 65, 65, 65, 41, 41, 41, 41, 41, 403, 41, 41, 
-    41, 41, 41, 41, 41, 41, 41, 41, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 
-    44, 44, 65, 78, 78, 136, 78, 78, 78, 78, 78, 78, 78, 136, 78, 78, 404, 
-    405, 136, 406, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 
-    78, 78, 78, 78, 78, 78, 78, 64, 64, 64, 64, 64, 64, 407, 136, 78, 136, 
-    37, 41, 37, 41, 37, 41, 41, 41, 41, 41, 41, 41, 41, 41, 37, 41, 62, 62, 
-    62, 62, 62, 62, 62, 62, 61, 61, 61, 61, 61, 61, 61, 61, 62, 62, 62, 62, 
-    62, 62, 64, 64, 61, 61, 61, 61, 61, 61, 64, 64, 64, 61, 64, 61, 64, 61, 
-    64, 61, 408, 408, 408, 408, 408, 408, 408, 408, 62, 62, 62, 62, 62, 64, 
-    62, 62, 61, 61, 61, 61, 408, 63, 62, 63, 63, 63, 62, 62, 62, 64, 62, 62, 
-    61, 61, 61, 61, 408, 63, 63, 63, 62, 62, 62, 62, 64, 64, 62, 62, 61, 61, 
-    61, 61, 64, 63, 63, 63, 61, 61, 61, 61, 61, 63, 63, 63, 64, 64, 62, 62, 
-    62, 64, 62, 62, 61, 61, 61, 61, 408, 63, 63, 64, 409, 409, 409, 409, 409, 
-    409, 409, 409, 409, 409, 409, 410, 411, 411, 412, 413, 414, 415, 415, 
-    414, 414, 414, 22, 66, 416, 417, 418, 419, 416, 417, 418, 419, 22, 22, 
-    22, 66, 22, 22, 22, 22, 420, 421, 422, 423, 424, 425, 426, 21, 427, 428, 
-    427, 427, 428, 22, 66, 66, 66, 28, 35, 22, 66, 66, 22, 429, 429, 66, 66, 
-    66, 430, 431, 432, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 433, 66, 
-    429, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 409, 410, 410, 410, 410, 
-    410, 64, 434, 435, 436, 437, 410, 410, 410, 410, 410, 410, 438, 44, 64, 
-    64, 33, 438, 438, 438, 438, 438, 439, 439, 433, 431, 432, 440, 438, 33, 
-    33, 33, 33, 438, 438, 438, 438, 438, 439, 439, 433, 431, 432, 64, 44, 44, 
-    44, 44, 44, 64, 64, 64, 250, 250, 250, 250, 250, 250, 250, 250, 250, 441, 
-    250, 250, 23, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 64, 78, 
-    78, 400, 400, 78, 78, 78, 78, 400, 400, 400, 78, 78, 366, 366, 366, 366, 
-    78, 366, 366, 366, 400, 400, 78, 136, 78, 400, 400, 136, 136, 136, 136, 
-    78, 64, 64, 64, 64, 64, 64, 64, 26, 26, 442, 30, 26, 30, 26, 442, 26, 30, 
-    34, 442, 442, 442, 34, 34, 442, 442, 442, 443, 26, 442, 30, 26, 433, 442, 
-    442, 442, 442, 442, 26, 26, 26, 30, 30, 26, 442, 26, 67, 26, 442, 26, 37, 
-    38, 442, 442, 444, 34, 442, 442, 37, 442, 34, 402, 402, 402, 402, 34, 26, 
-    26, 34, 34, 442, 442, 445, 433, 433, 433, 433, 442, 34, 34, 34, 34, 26, 
-    433, 26, 26, 41, 277, 446, 446, 446, 36, 36, 446, 446, 446, 446, 446, 
-    446, 36, 36, 36, 36, 446, 447, 447, 447, 447, 447, 447, 447, 447, 447, 
-    447, 447, 447, 448, 448, 448, 448, 447, 447, 448, 448, 448, 448, 448, 
-    448, 448, 448, 448, 37, 41, 448, 448, 448, 448, 36, 26, 26, 64, 64, 64, 
-    64, 39, 39, 39, 39, 39, 30, 30, 30, 30, 30, 433, 433, 26, 26, 26, 26, 
-    433, 26, 26, 433, 26, 26, 433, 26, 26, 26, 26, 26, 26, 26, 433, 26, 26, 
-    26, 26, 26, 26, 26, 26, 26, 30, 30, 26, 26, 26, 26, 26, 26, 26, 26, 26, 
-    26, 26, 26, 433, 433, 26, 26, 39, 26, 39, 26, 26, 26, 26, 26, 26, 26, 26, 
-    26, 26, 30, 26, 26, 26, 26, 433, 433, 433, 433, 433, 433, 433, 433, 433, 
-    433, 433, 433, 39, 445, 449, 449, 445, 433, 433, 39, 449, 445, 445, 449, 
-    445, 445, 433, 39, 433, 449, 439, 450, 433, 449, 445, 433, 433, 433, 449, 
-    445, 445, 449, 39, 449, 449, 445, 445, 39, 445, 39, 445, 39, 39, 39, 39, 
-    449, 449, 445, 449, 445, 445, 445, 445, 445, 39, 39, 39, 39, 433, 445, 
-    433, 445, 449, 449, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 
-    449, 445, 445, 445, 449, 433, 433, 433, 433, 433, 449, 445, 445, 445, 
-    433, 433, 433, 433, 433, 433, 433, 433, 433, 445, 449, 39, 445, 433, 449, 
-    449, 449, 449, 445, 445, 449, 449, 433, 433, 449, 449, 445, 445, 449, 
-    449, 445, 445, 449, 449, 445, 445, 445, 445, 445, 433, 433, 445, 445, 
-    445, 445, 433, 433, 39, 433, 433, 445, 39, 433, 433, 433, 433, 433, 433, 
-    433, 433, 445, 445, 433, 39, 445, 445, 445, 433, 433, 433, 433, 433, 445, 
-    449, 433, 445, 445, 445, 445, 445, 433, 433, 445, 445, 433, 433, 433, 
-    433, 445, 445, 445, 445, 445, 445, 445, 445, 433, 433, 431, 432, 431, 
-    432, 26, 26, 26, 26, 26, 26, 30, 26, 26, 26, 26, 26, 445, 445, 26, 26, 
-    26, 26, 26, 26, 26, 451, 452, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 
-    277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 26, 433, 
-    26, 26, 26, 26, 26, 26, 26, 26, 277, 26, 26, 26, 26, 26, 433, 433, 433, 
-    433, 433, 433, 433, 433, 433, 26, 26, 26, 26, 433, 433, 26, 26, 26, 26, 
-    26, 26, 26, 26, 26, 64, 64, 64, 64, 64, 26, 26, 26, 26, 26, 26, 26, 64, 
-    36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 
-    33, 33, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 
-    453, 446, 36, 36, 36, 36, 36, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 
-    30, 26, 26, 26, 26, 26, 26, 30, 30, 30, 30, 26, 26, 30, 30, 26, 30, 30, 
-    30, 30, 30, 26, 26, 30, 30, 26, 26, 30, 39, 26, 26, 26, 26, 30, 30, 26, 
-    26, 30, 39, 26, 26, 26, 26, 30, 30, 30, 26, 26, 30, 26, 26, 30, 30, 26, 
-    26, 26, 26, 26, 30, 30, 26, 26, 30, 26, 26, 26, 26, 30, 30, 26, 26, 26, 
-    26, 30, 26, 30, 26, 30, 26, 30, 26, 26, 26, 26, 26, 30, 30, 26, 30, 30, 
-    30, 26, 30, 30, 30, 30, 26, 30, 30, 26, 39, 26, 26, 26, 26, 26, 26, 30, 
-    30, 26, 26, 26, 26, 277, 26, 26, 26, 26, 26, 26, 26, 30, 30, 30, 30, 30, 
-    30, 30, 30, 30, 30, 26, 30, 30, 30, 26, 30, 26, 26, 26, 26, 26, 26, 26, 
-    26, 26, 30, 26, 26, 431, 432, 431, 432, 431, 432, 431, 432, 431, 432, 
-    431, 432, 431, 432, 36, 36, 446, 446, 446, 446, 446, 446, 446, 446, 446, 
-    446, 446, 446, 26, 26, 26, 26, 445, 433, 433, 445, 445, 431, 432, 433, 
-    445, 445, 433, 445, 445, 445, 433, 433, 433, 433, 433, 445, 445, 445, 
-    445, 433, 433, 433, 433, 433, 445, 445, 445, 433, 433, 433, 445, 445, 
-    445, 445, 9, 10, 9, 10, 9, 10, 9, 10, 431, 432, 454, 454, 454, 454, 454, 
-    454, 454, 454, 433, 433, 433, 431, 432, 9, 10, 431, 432, 431, 432, 431, 
-    432, 431, 432, 431, 432, 433, 433, 445, 445, 445, 445, 445, 445, 433, 
-    433, 433, 433, 433, 433, 433, 433, 445, 433, 433, 433, 433, 445, 445, 
-    445, 445, 445, 433, 445, 445, 433, 433, 431, 432, 431, 432, 445, 433, 
-    433, 433, 433, 445, 433, 445, 445, 445, 433, 433, 445, 445, 433, 433, 
-    433, 433, 433, 433, 433, 433, 433, 433, 445, 445, 445, 445, 445, 445, 
-    433, 433, 431, 432, 433, 433, 433, 433, 445, 445, 445, 445, 445, 445, 
-    445, 445, 445, 445, 445, 433, 445, 445, 445, 445, 433, 433, 445, 433, 
-    445, 433, 433, 445, 433, 445, 445, 445, 445, 433, 433, 433, 433, 433, 
-    445, 445, 433, 433, 433, 433, 445, 445, 445, 445, 433, 445, 445, 433, 
-    433, 445, 445, 433, 433, 433, 433, 445, 445, 445, 445, 445, 445, 445, 
-    445, 445, 445, 445, 433, 433, 445, 445, 445, 445, 445, 445, 445, 445, 
-    433, 445, 445, 445, 445, 445, 445, 445, 445, 433, 433, 433, 433, 433, 
-    445, 433, 445, 433, 433, 433, 445, 445, 445, 445, 445, 433, 433, 433, 
-    433, 445, 433, 433, 433, 445, 445, 445, 445, 445, 433, 445, 433, 433, 
-    433, 433, 433, 433, 433, 26, 26, 433, 433, 433, 433, 433, 433, 26, 26, 
-    26, 26, 26, 26, 26, 26, 30, 30, 30, 26, 26, 26, 26, 64, 64, 26, 26, 26, 
-    26, 26, 26, 26, 26, 64, 64, 26, 26, 64, 64, 64, 26, 26, 26, 26, 64, 26, 
-    26, 26, 26, 26, 26, 26, 26, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 26, 
-    26, 26, 26, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 455, 
-    455, 455, 455, 64, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 
-    456, 456, 456, 456, 64, 37, 41, 37, 37, 37, 41, 41, 37, 41, 37, 41, 37, 
-    41, 37, 37, 37, 37, 41, 37, 41, 41, 37, 41, 41, 41, 41, 41, 41, 44, 44, 
-    37, 37, 69, 70, 69, 70, 70, 457, 457, 457, 457, 457, 457, 69, 70, 69, 70, 
-    458, 458, 458, 69, 70, 64, 64, 64, 64, 64, 459, 459, 459, 459, 460, 459, 
-    459, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 
-    461, 64, 461, 64, 64, 64, 64, 64, 461, 64, 64, 462, 462, 462, 462, 462, 
-    462, 462, 462, 64, 64, 64, 64, 64, 64, 64, 463, 464, 64, 64, 64, 64, 64, 
-    64, 64, 64, 64, 64, 64, 64, 64, 64, 465, 77, 77, 77, 77, 77, 77, 77, 77, 
-    66, 66, 28, 35, 28, 35, 66, 66, 66, 28, 35, 66, 28, 35, 66, 66, 66, 66, 
-    66, 66, 66, 66, 66, 415, 66, 66, 415, 66, 28, 35, 66, 66, 28, 35, 431, 
-    432, 431, 432, 431, 432, 431, 432, 66, 66, 66, 66, 66, 45, 66, 66, 415, 
-    415, 66, 66, 66, 66, 415, 66, 418, 64, 64, 64, 64, 64, 466, 466, 466, 
-    466, 466, 466, 466, 466, 466, 466, 64, 466, 466, 466, 466, 466, 466, 466, 
-    466, 466, 64, 64, 64, 64, 466, 466, 466, 466, 466, 466, 64, 64, 467, 467, 
-    467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 64, 64, 64, 64, 468, 
-    469, 469, 469, 467, 470, 471, 472, 451, 452, 451, 452, 451, 452, 451, 
-    452, 451, 452, 467, 467, 451, 452, 451, 452, 451, 452, 451, 452, 473, 
-    474, 475, 475, 467, 472, 472, 472, 472, 472, 472, 472, 472, 472, 476, 
-    477, 478, 479, 480, 480, 473, 481, 481, 481, 481, 481, 467, 467, 472, 
-    472, 472, 470, 471, 469, 467, 26, 64, 482, 482, 482, 482, 482, 482, 482, 
-    482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 482, 
-    482, 64, 64, 483, 483, 484, 484, 485, 485, 482, 473, 486, 486, 486, 486, 
-    486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 486, 
-    469, 481, 487, 487, 486, 64, 64, 64, 64, 64, 488, 488, 488, 488, 488, 
-    488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 64, 64, 64, 
-    290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 290, 64, 
-    489, 489, 490, 490, 490, 490, 489, 489, 489, 489, 489, 489, 489, 489, 
-    489, 489, 488, 488, 488, 64, 64, 64, 64, 64, 491, 491, 491, 491, 491, 
-    491, 491, 491, 491, 491, 491, 491, 491, 492, 492, 64, 490, 490, 490, 490, 
-    490, 490, 490, 490, 490, 490, 489, 489, 489, 489, 489, 489, 493, 493, 
-    493, 493, 493, 493, 493, 493, 467, 494, 494, 494, 494, 494, 494, 494, 
-    494, 494, 494, 494, 494, 494, 494, 494, 491, 491, 491, 491, 492, 492, 
-    492, 489, 489, 494, 494, 494, 494, 494, 494, 494, 489, 489, 489, 489, 
-    467, 467, 467, 467, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 
-    495, 495, 495, 495, 495, 64, 489, 489, 489, 489, 489, 489, 489, 467, 467, 
-    467, 467, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 489, 467, 
-    467, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 
-    496, 497, 497, 497, 497, 497, 497, 497, 497, 497, 497, 498, 498, 498, 
-    498, 498, 498, 498, 498, 498, 498, 498, 498, 498, 499, 498, 498, 498, 
-    498, 498, 498, 498, 64, 64, 64, 500, 500, 500, 500, 500, 500, 500, 500, 
-    500, 500, 500, 500, 500, 500, 500, 64, 501, 501, 501, 501, 501, 501, 501, 
-    501, 502, 502, 502, 502, 502, 502, 503, 503, 504, 504, 504, 504, 504, 
-    504, 504, 504, 504, 504, 504, 504, 505, 506, 506, 506, 507, 507, 507, 
-    507, 507, 507, 507, 507, 507, 507, 504, 504, 64, 64, 64, 64, 72, 75, 72, 
-    75, 72, 75, 508, 77, 79, 79, 79, 509, 77, 77, 77, 77, 77, 77, 77, 77, 77, 
-    77, 509, 510, 72, 75, 72, 75, 403, 403, 77, 77, 511, 511, 511, 511, 511, 
-    511, 511, 511, 511, 511, 511, 511, 511, 511, 512, 512, 512, 512, 512, 
-    512, 512, 512, 512, 512, 513, 513, 514, 514, 514, 514, 514, 514, 47, 47, 
-    47, 47, 47, 47, 47, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 47, 37, 41, 
-    37, 41, 37, 41, 41, 41, 37, 41, 37, 41, 37, 41, 44, 41, 41, 41, 41, 41, 
-    41, 41, 41, 37, 41, 37, 41, 37, 37, 41, 45, 515, 515, 37, 41, 37, 41, 42, 
-    37, 41, 37, 41, 41, 41, 37, 41, 37, 41, 37, 37, 37, 37, 64, 64, 37, 37, 
-    37, 37, 37, 41, 37, 41, 64, 64, 64, 64, 64, 64, 64, 42, 44, 44, 41, 42, 
-    42, 42, 42, 42, 516, 516, 517, 516, 516, 516, 518, 516, 516, 516, 516, 
-    517, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 
-    516, 516, 519, 519, 517, 517, 519, 520, 520, 520, 520, 64, 64, 64, 64, 
-    521, 521, 521, 521, 521, 521, 277, 277, 250, 444, 64, 64, 64, 64, 64, 64, 
-    522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 523, 523, 
-    523, 523, 524, 524, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 
-    525, 525, 525, 525, 525, 525, 525, 525, 524, 524, 524, 524, 524, 524, 
-    524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 526, 64, 64, 64, 64, 
-    64, 64, 64, 64, 64, 527, 527, 528, 528, 528, 528, 528, 528, 528, 528, 
-    528, 528, 64, 64, 64, 64, 64, 64, 174, 174, 174, 174, 174, 174, 174, 174, 
-    174, 174, 171, 171, 171, 171, 171, 171, 176, 176, 176, 171, 176, 171, 64, 
-    64, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 530, 530, 530, 530, 
-    530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 
-    530, 530, 531, 531, 531, 531, 531, 532, 532, 532, 84, 533, 534, 534, 534, 
-    534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 535, 535, 
-    535, 535, 535, 535, 535, 535, 535, 535, 535, 536, 537, 64, 64, 64, 64, 
-    64, 64, 64, 64, 64, 64, 64, 538, 290, 290, 290, 290, 290, 64, 64, 64, 
-    539, 539, 539, 540, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 
-    541, 541, 541, 541, 541, 542, 540, 540, 539, 539, 539, 539, 540, 540, 
-    539, 540, 540, 540, 543, 544, 544, 544, 544, 544, 544, 544, 544, 544, 
-    544, 544, 544, 544, 64, 46, 545, 545, 545, 545, 545, 545, 545, 545, 545, 
-    545, 64, 64, 64, 64, 544, 544, 278, 278, 278, 278, 278, 280, 546, 278, 
-    283, 283, 278, 278, 278, 278, 278, 64, 547, 547, 547, 547, 547, 547, 547, 
-    547, 547, 548, 548, 548, 548, 548, 548, 549, 549, 548, 548, 549, 549, 
-    548, 548, 64, 547, 547, 547, 548, 547, 547, 547, 547, 547, 547, 547, 547, 
-    548, 549, 64, 64, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 64, 
-    64, 551, 551, 551, 551, 546, 278, 278, 278, 278, 278, 278, 286, 286, 286, 
-    278, 279, 280, 279, 278, 278, 552, 552, 552, 552, 552, 552, 552, 552, 
-    553, 552, 553, 553, 554, 552, 552, 553, 553, 552, 552, 552, 552, 552, 
-    553, 553, 552, 553, 552, 64, 64, 64, 64, 64, 64, 64, 64, 552, 552, 555, 
-    556, 556, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, 558, 
-    559, 559, 558, 558, 560, 560, 557, 561, 561, 558, 562, 64, 64, 292, 292, 
-    292, 292, 292, 292, 64, 41, 41, 41, 515, 44, 44, 44, 44, 41, 41, 41, 41, 
-    41, 62, 64, 64, 298, 298, 298, 298, 298, 298, 298, 298, 557, 557, 557, 
-    558, 558, 559, 558, 558, 559, 558, 558, 560, 558, 562, 64, 64, 563, 563, 
-    563, 563, 563, 563, 563, 563, 563, 563, 64, 64, 64, 64, 64, 64, 290, 290, 
-    290, 290, 64, 64, 64, 64, 291, 291, 291, 291, 291, 291, 291, 64, 64, 64, 
-    64, 291, 291, 291, 291, 291, 291, 291, 291, 291, 64, 64, 64, 64, 564, 
-    564, 564, 564, 564, 564, 564, 564, 565, 565, 565, 565, 565, 565, 565, 
-    565, 496, 496, 497, 497, 497, 497, 497, 497, 41, 41, 41, 41, 41, 41, 41, 
-    64, 64, 64, 64, 83, 83, 83, 83, 83, 64, 64, 64, 64, 64, 110, 566, 110, 
-    110, 567, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 
-    110, 64, 110, 110, 110, 110, 110, 64, 110, 64, 110, 110, 64, 110, 110, 
-    64, 110, 110, 126, 126, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 
-    568, 568, 568, 568, 568, 568, 64, 64, 64, 64, 64, 64, 64, 64, 64, 126, 
-    126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 569, 418, 64, 64, 126, 
-    126, 126, 126, 126, 126, 126, 126, 126, 126, 116, 119, 64, 64, 58, 58, 
-    58, 58, 58, 58, 58, 58, 469, 469, 469, 469, 469, 469, 469, 474, 475, 469, 
-    64, 64, 64, 64, 64, 64, 78, 78, 78, 78, 78, 78, 78, 136, 136, 136, 136, 
-    136, 136, 136, 77, 77, 469, 473, 473, 570, 570, 474, 475, 474, 475, 474, 
-    475, 474, 475, 474, 475, 474, 475, 474, 475, 474, 475, 469, 469, 474, 
-    475, 469, 469, 469, 469, 570, 570, 570, 571, 469, 571, 64, 469, 571, 469, 
-    469, 473, 451, 452, 451, 452, 451, 452, 572, 469, 469, 573, 574, 575, 
-    575, 576, 64, 469, 577, 572, 469, 64, 64, 64, 64, 126, 126, 126, 126, 
-    126, 64, 126, 126, 126, 126, 126, 126, 126, 64, 64, 410, 64, 578, 578, 
-    579, 580, 579, 578, 578, 581, 582, 578, 583, 584, 585, 584, 584, 586, 
-    586, 586, 586, 586, 586, 586, 586, 586, 586, 584, 578, 587, 588, 587, 
-    578, 578, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 589, 
-    589, 589, 589, 589, 589, 589, 581, 578, 582, 590, 591, 590, 592, 592, 
-    592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 592, 
-    592, 592, 581, 588, 582, 588, 581, 582, 593, 594, 595, 593, 593, 596, 
-    596, 596, 596, 596, 596, 596, 596, 596, 596, 597, 596, 596, 596, 596, 
-    596, 596, 596, 596, 596, 596, 596, 596, 596, 597, 597, 598, 598, 598, 
-    598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, 64, 64, 64, 
-    598, 598, 598, 598, 598, 598, 64, 64, 598, 598, 598, 64, 64, 64, 580, 
-    580, 588, 590, 599, 580, 580, 64, 600, 601, 601, 601, 601, 600, 600, 64, 
-    64, 602, 602, 602, 26, 30, 64, 64, 603, 603, 603, 603, 603, 603, 603, 
-    603, 603, 603, 603, 603, 64, 603, 603, 603, 603, 603, 603, 603, 603, 603, 
-    603, 64, 603, 603, 603, 64, 603, 603, 64, 603, 603, 603, 603, 603, 603, 
-    603, 64, 64, 603, 603, 603, 64, 64, 64, 64, 64, 84, 66, 84, 64, 64, 64, 
-    64, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 64, 
-    64, 64, 277, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 
-    604, 605, 605, 605, 605, 606, 606, 606, 606, 606, 606, 606, 606, 606, 
-    606, 606, 606, 606, 606, 606, 606, 606, 605, 605, 606, 64, 64, 64, 26, 
-    26, 26, 26, 64, 64, 64, 64, 606, 64, 64, 64, 64, 64, 64, 64, 277, 277, 
-    277, 277, 277, 136, 64, 64, 607, 607, 607, 607, 607, 607, 607, 607, 607, 
-    607, 607, 607, 607, 64, 64, 64, 608, 608, 608, 608, 608, 608, 608, 608, 
-    608, 64, 64, 64, 64, 64, 64, 64, 136, 438, 438, 438, 438, 438, 438, 438, 
-    438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 438, 64, 64, 64, 
-    64, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 610, 610, 64, 64, 
-    64, 64, 611, 611, 611, 611, 611, 611, 611, 611, 611, 612, 611, 611, 611, 
-    611, 611, 611, 611, 611, 612, 64, 64, 64, 64, 64, 613, 613, 613, 613, 
-    613, 613, 613, 613, 613, 613, 613, 613, 613, 613, 614, 614, 614, 614, 
-    614, 64, 64, 64, 64, 64, 615, 615, 615, 615, 615, 615, 615, 615, 615, 
-    615, 615, 615, 615, 615, 64, 616, 617, 617, 617, 617, 617, 617, 617, 617, 
-    617, 617, 617, 617, 64, 64, 64, 64, 618, 619, 619, 619, 619, 619, 64, 64, 
-    620, 620, 620, 620, 620, 620, 620, 620, 621, 621, 621, 621, 621, 621, 
-    621, 621, 622, 622, 622, 622, 622, 622, 622, 622, 623, 623, 623, 623, 
-    623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 64, 64, 624, 624, 624, 
-    624, 624, 624, 624, 624, 624, 624, 64, 64, 64, 64, 64, 64, 625, 625, 625, 
-    625, 625, 625, 625, 625, 626, 626, 626, 626, 626, 626, 626, 626, 626, 
-    626, 626, 626, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 627, 628, 628, 
-    628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 64, 628, 
-    628, 628, 628, 628, 628, 64, 64, 629, 629, 629, 629, 629, 629, 64, 64, 
-    629, 64, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 
-    629, 629, 629, 629, 629, 629, 629, 64, 629, 629, 64, 64, 64, 629, 64, 64, 
-    629, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 
-    630, 64, 631, 632, 632, 632, 632, 632, 632, 632, 632, 633, 633, 633, 633, 
-    633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, 635, 
-    635, 635, 635, 635, 635, 635, 636, 636, 636, 636, 636, 636, 636, 636, 
-    636, 636, 636, 636, 636, 636, 636, 64, 64, 64, 64, 64, 64, 64, 64, 637, 
-    637, 637, 637, 637, 637, 637, 637, 637, 638, 638, 638, 638, 638, 638, 
-    638, 638, 638, 638, 638, 64, 638, 638, 64, 64, 64, 64, 64, 639, 639, 639, 
-    639, 639, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 640, 
-    640, 640, 641, 641, 641, 641, 641, 641, 64, 64, 64, 642, 643, 643, 643, 
-    643, 643, 643, 643, 643, 643, 643, 64, 64, 64, 64, 64, 644, 645, 645, 
-    645, 645, 645, 645, 645, 645, 646, 646, 646, 646, 646, 646, 646, 646, 64, 
-    64, 64, 64, 647, 647, 646, 646, 647, 647, 647, 647, 647, 647, 647, 647, 
-    64, 64, 647, 647, 647, 647, 647, 647, 648, 649, 649, 649, 64, 649, 649, 
-    64, 64, 64, 64, 64, 649, 650, 649, 651, 648, 648, 648, 648, 64, 648, 648, 
-    648, 64, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 648, 
-    648, 648, 648, 648, 648, 648, 64, 64, 64, 64, 651, 652, 650, 64, 64, 64, 
-    64, 653, 654, 654, 654, 654, 654, 654, 654, 654, 655, 655, 655, 655, 655, 
-    655, 655, 655, 655, 64, 64, 64, 64, 64, 64, 64, 656, 656, 656, 656, 656, 
-    656, 656, 656, 656, 656, 656, 656, 656, 657, 657, 658, 659, 659, 659, 
-    659, 659, 659, 659, 659, 659, 659, 659, 659, 659, 660, 660, 660, 661, 
-    661, 661, 661, 661, 661, 661, 661, 662, 661, 661, 661, 661, 661, 661, 
-    661, 661, 661, 661, 661, 661, 663, 664, 64, 64, 64, 64, 665, 665, 665, 
-    665, 665, 666, 666, 666, 666, 666, 666, 666, 64, 667, 667, 667, 667, 667, 
-    667, 667, 667, 667, 667, 667, 667, 667, 667, 64, 64, 64, 668, 668, 668, 
-    668, 668, 668, 668, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 
-    669, 669, 669, 669, 64, 64, 670, 670, 670, 670, 670, 670, 670, 670, 671, 
-    671, 671, 671, 671, 671, 671, 671, 671, 671, 671, 64, 64, 64, 64, 64, 
-    672, 672, 672, 672, 672, 672, 672, 672, 673, 673, 673, 673, 673, 673, 
-    673, 673, 673, 673, 64, 64, 64, 64, 64, 64, 64, 674, 674, 674, 674, 64, 
-    64, 64, 64, 675, 675, 675, 675, 675, 675, 675, 676, 676, 676, 676, 676, 
-    676, 676, 676, 676, 64, 64, 64, 64, 64, 64, 64, 677, 677, 677, 677, 677, 
-    677, 677, 677, 677, 677, 677, 64, 64, 64, 64, 64, 678, 678, 678, 678, 
-    678, 678, 678, 678, 678, 678, 678, 64, 64, 64, 64, 64, 64, 64, 679, 679, 
-    679, 679, 679, 679, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 
-    680, 680, 680, 680, 680, 64, 681, 682, 681, 683, 683, 683, 683, 683, 683, 
-    683, 683, 683, 683, 683, 683, 683, 682, 682, 682, 682, 682, 682, 682, 
-    682, 682, 682, 682, 682, 682, 682, 684, 685, 685, 685, 685, 685, 685, 
-    685, 64, 64, 64, 64, 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 
-    686, 686, 686, 686, 686, 686, 686, 686, 686, 686, 687, 687, 687, 687, 
-    687, 687, 687, 687, 687, 687, 64, 64, 64, 64, 64, 64, 64, 684, 688, 688, 
-    689, 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, 690, 
-    689, 689, 689, 688, 688, 688, 688, 689, 689, 691, 692, 693, 693, 694, 
-    693, 693, 693, 693, 64, 64, 64, 64, 64, 64, 695, 695, 695, 695, 695, 695, 
-    695, 695, 695, 64, 64, 64, 64, 64, 64, 64, 696, 696, 696, 696, 696, 696, 
-    696, 696, 696, 696, 64, 64, 64, 64, 64, 64, 697, 697, 697, 698, 698, 698, 
-    698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 
-    698, 698, 698, 699, 699, 699, 699, 699, 700, 699, 699, 699, 699, 699, 
-    699, 701, 701, 64, 702, 702, 702, 702, 702, 702, 702, 702, 702, 702, 703, 
-    703, 703, 703, 64, 64, 64, 64, 704, 704, 704, 704, 704, 704, 704, 704, 
-    704, 704, 704, 705, 706, 706, 704, 64, 707, 707, 708, 709, 709, 709, 709, 
-    709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 708, 708, 
-    708, 707, 707, 707, 707, 707, 707, 707, 707, 707, 708, 710, 709, 709, 
-    709, 709, 711, 711, 711, 711, 711, 712, 707, 707, 711, 64, 64, 713, 713, 
-    713, 713, 713, 713, 713, 713, 713, 713, 709, 711, 709, 711, 711, 711, 64, 
+    1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 1, 1, 1, 1, 1, 1, 7, 7, 7, 8, 
+    9, 10, 11, 12, 13, 14, 15, 11, 16, 17, 15, 18, 19, 20, 19, 21, 22, 22, 
+    22, 22, 22, 22, 22, 22, 22, 22, 19, 23, 24, 25, 24, 10, 15, 26, 26, 26, 
+    26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 16, 27, 17, 
+    28, 29, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 
+    30, 30, 30, 16, 31, 32, 25, 1, 1, 1, 1, 1, 1, 33, 1, 1, 34, 35, 36, 13, 
+    37, 13, 38, 39, 40, 41, 42, 43, 25, 44, 45, 28, 46, 47, 48, 48, 49, 50, 
+    39, 39, 40, 48, 42, 51, 52, 52, 52, 35, 53, 53, 53, 53, 53, 53, 54, 53, 
+    53, 53, 53, 53, 53, 53, 53, 53, 54, 53, 53, 53, 53, 53, 53, 55, 54, 53, 
+    53, 53, 53, 53, 54, 56, 56, 56, 57, 57, 57, 57, 56, 57, 56, 56, 56, 57, 
+    56, 56, 57, 57, 56, 57, 56, 56, 57, 57, 57, 55, 56, 56, 56, 57, 56, 57, 
+    56, 57, 53, 56, 53, 57, 53, 57, 53, 57, 53, 57, 53, 57, 53, 57, 53, 57, 
+    53, 56, 53, 56, 53, 57, 53, 57, 53, 57, 53, 56, 53, 57, 53, 57, 53, 57, 
+    53, 57, 53, 57, 54, 56, 53, 56, 54, 56, 53, 57, 53, 57, 56, 53, 57, 53, 
+    57, 53, 57, 54, 56, 54, 56, 53, 56, 53, 57, 53, 56, 56, 54, 56, 53, 56, 
+    53, 57, 53, 57, 54, 56, 53, 57, 53, 57, 53, 53, 57, 53, 57, 53, 57, 57, 
+    57, 53, 53, 57, 53, 57, 53, 53, 57, 53, 53, 53, 57, 57, 53, 53, 53, 53, 
+    57, 53, 53, 57, 53, 53, 53, 57, 57, 57, 53, 53, 57, 53, 53, 57, 53, 57, 
+    53, 57, 53, 53, 57, 53, 57, 57, 53, 57, 53, 53, 57, 53, 53, 53, 57, 53, 
+    57, 53, 53, 57, 57, 58, 53, 57, 57, 57, 58, 58, 58, 58, 53, 59, 57, 53, 
+    59, 57, 53, 59, 57, 53, 56, 53, 56, 53, 56, 53, 56, 53, 56, 53, 56, 53, 
+    56, 53, 56, 57, 53, 57, 57, 53, 59, 57, 53, 57, 53, 53, 53, 57, 53, 57, 
+    57, 57, 57, 57, 57, 57, 53, 53, 57, 53, 53, 57, 57, 53, 57, 53, 53, 53, 
+    53, 57, 57, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 
+    57, 57, 57, 57, 58, 57, 57, 57, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 
+    61, 62, 62, 62, 62, 62, 62, 62, 63, 63, 64, 63, 61, 65, 66, 65, 65, 65, 
+    66, 65, 61, 61, 67, 62, 63, 63, 63, 63, 63, 63, 40, 40, 40, 40, 63, 40, 
+    63, 49, 60, 60, 60, 60, 60, 63, 63, 63, 63, 63, 68, 68, 61, 63, 62, 63, 
+    63, 63, 63, 63, 63, 63, 63, 63, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 
+    69, 69, 69, 70, 71, 71, 71, 71, 70, 72, 71, 71, 71, 71, 71, 73, 73, 71, 
+    71, 71, 71, 73, 73, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 74, 74, 
+    74, 74, 74, 71, 71, 71, 71, 69, 69, 69, 69, 69, 69, 69, 69, 75, 69, 71, 
+    71, 71, 69, 69, 69, 71, 71, 76, 69, 69, 69, 71, 71, 71, 71, 69, 70, 71, 
+    71, 69, 77, 78, 78, 77, 78, 78, 77, 69, 69, 69, 69, 69, 79, 80, 79, 80, 
+    61, 81, 79, 80, 82, 82, 83, 80, 80, 80, 84, 79, 82, 82, 82, 82, 81, 63, 
+    79, 85, 79, 79, 79, 82, 79, 82, 79, 79, 80, 86, 86, 86, 86, 86, 86, 86, 
+    86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 82, 86, 86, 86, 86, 86, 86, 86, 
+    79, 79, 80, 80, 80, 80, 80, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 
+    87, 87, 87, 87, 87, 87, 80, 87, 87, 87, 87, 87, 87, 87, 80, 80, 80, 80, 
+    80, 79, 80, 80, 79, 79, 79, 80, 80, 80, 79, 80, 79, 80, 79, 80, 79, 80, 
+    79, 80, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 88, 89, 80, 80, 
+    80, 80, 79, 80, 90, 79, 80, 79, 79, 80, 80, 79, 79, 79, 91, 92, 91, 91, 
+    91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 
+    92, 92, 93, 93, 93, 93, 93, 93, 93, 93, 94, 93, 94, 94, 94, 94, 94, 94, 
+    94, 94, 94, 94, 94, 94, 94, 94, 91, 94, 91, 94, 91, 94, 91, 94, 91, 94, 
+    95, 96, 96, 97, 97, 96, 98, 98, 91, 94, 91, 94, 91, 94, 91, 91, 94, 91, 
+    94, 91, 94, 91, 94, 91, 94, 91, 94, 91, 94, 94, 82, 99, 99, 99, 99, 99, 
+    99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 82, 
+    82, 100, 101, 101, 101, 101, 101, 101, 82, 102, 102, 102, 102, 102, 102, 
+    102, 102, 102, 102, 102, 102, 102, 102, 102, 82, 103, 104, 82, 82, 105, 
+    105, 106, 82, 107, 108, 108, 108, 108, 107, 108, 108, 108, 109, 107, 108, 
+    108, 108, 108, 108, 108, 107, 107, 107, 107, 107, 107, 108, 108, 107, 
+    108, 108, 109, 110, 108, 111, 112, 113, 114, 115, 116, 117, 118, 119, 
+    120, 120, 121, 122, 123, 124, 125, 126, 127, 128, 126, 108, 107, 129, 
+    119, 82, 82, 82, 82, 82, 82, 82, 82, 130, 130, 130, 130, 130, 130, 130, 
+    130, 130, 130, 130, 82, 82, 82, 82, 82, 130, 130, 130, 126, 126, 82, 82, 
+    82, 131, 131, 131, 131, 131, 132, 133, 133, 134, 135, 135, 136, 137, 138, 
+    139, 139, 140, 140, 140, 140, 140, 140, 140, 140, 141, 142, 143, 144, 
+    145, 82, 146, 144, 147, 147, 147, 147, 147, 147, 147, 147, 148, 147, 147, 
+    147, 147, 147, 147, 147, 147, 147, 147, 149, 150, 151, 152, 153, 154, 
+    155, 156, 97, 97, 157, 158, 140, 140, 140, 140, 140, 158, 140, 140, 158, 
+    159, 159, 159, 159, 159, 159, 159, 159, 159, 159, 135, 160, 160, 161, 
+    147, 147, 162, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 
+    146, 147, 140, 140, 140, 140, 140, 140, 140, 132, 139, 140, 140, 140, 
+    140, 158, 140, 163, 163, 140, 140, 139, 158, 140, 140, 158, 147, 147, 
+    164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 147, 147, 147, 165, 
+    165, 147, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 
+    166, 166, 82, 167, 168, 169, 168, 168, 168, 168, 168, 168, 168, 168, 168, 
+    168, 168, 168, 168, 168, 170, 171, 170, 170, 171, 170, 170, 171, 171, 
+    171, 170, 171, 171, 170, 171, 170, 170, 170, 171, 170, 171, 170, 171, 
+    170, 171, 170, 170, 82, 82, 168, 168, 168, 172, 172, 172, 172, 172, 172, 
+    172, 172, 172, 172, 172, 172, 172, 172, 173, 173, 173, 173, 173, 173, 
+    173, 173, 173, 173, 173, 172, 82, 82, 82, 82, 82, 82, 174, 174, 174, 174, 
+    174, 174, 174, 174, 174, 174, 175, 175, 175, 175, 175, 175, 175, 175, 
+    175, 175, 175, 175, 175, 175, 175, 175, 175, 176, 176, 176, 176, 176, 
+    176, 176, 177, 176, 178, 178, 179, 180, 181, 182, 178, 82, 82, 82, 82, 
+    82, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 
+    184, 184, 184, 184, 185, 184, 184, 184, 184, 184, 184, 184, 184, 184, 
+    185, 184, 184, 184, 185, 184, 184, 184, 184, 184, 82, 82, 186, 186, 186, 
+    186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 82, 187, 187, 
+    187, 187, 187, 187, 187, 187, 187, 188, 188, 188, 82, 82, 189, 82, 147, 
+    147, 147, 147, 147, 82, 147, 147, 147, 147, 147, 147, 147, 147, 82, 82, 
+    82, 82, 82, 82, 140, 140, 140, 140, 140, 140, 132, 158, 140, 140, 158, 
+    140, 140, 158, 140, 140, 140, 158, 158, 158, 190, 191, 192, 140, 140, 
+    140, 158, 140, 140, 158, 158, 140, 140, 140, 140, 140, 193, 193, 193, 
+    194, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 
+    195, 193, 194, 196, 195, 194, 194, 194, 193, 193, 193, 193, 193, 193, 
+    193, 193, 194, 194, 194, 194, 197, 194, 194, 195, 97, 157, 198, 198, 193, 
+    193, 193, 195, 195, 193, 193, 199, 199, 200, 200, 200, 200, 200, 200, 
+    200, 200, 200, 200, 201, 202, 195, 195, 195, 195, 195, 195, 203, 204, 
+    205, 205, 82, 203, 203, 203, 203, 203, 203, 203, 203, 82, 82, 203, 203, 
+    82, 82, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 
+    203, 82, 203, 203, 203, 203, 203, 203, 203, 82, 203, 82, 82, 82, 203, 
+    203, 203, 203, 82, 82, 206, 203, 205, 205, 205, 204, 204, 204, 204, 82, 
+    82, 205, 205, 82, 82, 205, 205, 207, 203, 82, 82, 82, 82, 82, 82, 82, 82, 
+    205, 82, 82, 82, 82, 203, 203, 82, 203, 203, 203, 204, 204, 82, 82, 208, 
+    208, 208, 208, 208, 208, 208, 208, 208, 208, 203, 203, 209, 209, 210, 
+    210, 210, 210, 210, 211, 212, 213, 82, 82, 82, 82, 82, 214, 214, 215, 82, 
+    216, 216, 216, 216, 216, 216, 82, 82, 82, 82, 216, 216, 82, 82, 216, 216, 
+    216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 82, 216, 216, 
+    216, 216, 216, 216, 216, 82, 216, 216, 82, 216, 216, 82, 216, 216, 82, 
+    82, 217, 82, 215, 215, 215, 214, 214, 82, 82, 82, 82, 214, 214, 82, 82, 
+    214, 214, 218, 82, 82, 82, 214, 82, 82, 82, 82, 82, 82, 82, 216, 216, 
+    216, 216, 82, 216, 82, 82, 82, 82, 82, 82, 82, 219, 219, 219, 219, 219, 
+    219, 219, 219, 219, 219, 214, 214, 216, 216, 216, 214, 82, 82, 82, 220, 
+    220, 221, 82, 222, 222, 222, 222, 222, 222, 222, 222, 222, 82, 222, 222, 
+    222, 82, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 
+    222, 82, 222, 222, 222, 222, 222, 222, 222, 82, 222, 222, 82, 222, 222, 
+    222, 222, 222, 82, 82, 223, 222, 221, 221, 221, 220, 220, 220, 220, 220, 
+    82, 220, 220, 221, 82, 221, 221, 224, 82, 82, 222, 82, 82, 82, 82, 82, 
+    82, 82, 222, 222, 220, 220, 82, 82, 225, 225, 225, 225, 225, 225, 225, 
+    225, 225, 225, 226, 227, 82, 82, 82, 82, 82, 82, 82, 222, 82, 82, 82, 82, 
+    82, 82, 82, 228, 229, 229, 82, 230, 230, 230, 230, 230, 230, 230, 230, 
+    82, 82, 230, 230, 82, 82, 230, 230, 230, 230, 230, 230, 230, 230, 230, 
+    230, 230, 230, 230, 230, 82, 230, 230, 230, 230, 230, 230, 230, 82, 230, 
+    230, 82, 230, 230, 230, 230, 230, 82, 82, 231, 230, 229, 228, 229, 228, 
+    228, 228, 228, 82, 82, 229, 229, 82, 82, 229, 229, 232, 82, 82, 82, 82, 
+    82, 82, 82, 82, 228, 229, 82, 82, 82, 82, 230, 230, 82, 230, 230, 230, 
+    228, 228, 82, 82, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 234, 
+    230, 235, 235, 235, 235, 235, 235, 82, 82, 236, 237, 82, 237, 237, 237, 
+    237, 237, 237, 82, 82, 82, 237, 237, 237, 82, 237, 237, 237, 237, 82, 82, 
+    82, 237, 237, 82, 237, 82, 237, 237, 82, 82, 82, 237, 237, 82, 82, 82, 
+    237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 82, 82, 82, 82, 238, 
+    238, 236, 238, 238, 82, 82, 82, 238, 238, 238, 82, 238, 238, 238, 239, 
+    82, 82, 237, 82, 82, 82, 82, 82, 82, 238, 82, 82, 82, 82, 82, 82, 240, 
+    240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 
+    242, 242, 242, 242, 243, 242, 82, 82, 82, 82, 82, 244, 245, 245, 245, 82, 
+    246, 246, 246, 246, 246, 246, 246, 246, 82, 246, 246, 246, 82, 246, 246, 
+    246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 82, 
+    82, 82, 246, 244, 244, 244, 245, 245, 245, 245, 82, 244, 244, 244, 82, 
+    244, 244, 244, 247, 82, 82, 82, 82, 82, 82, 82, 248, 249, 82, 246, 246, 
+    246, 82, 82, 82, 82, 82, 246, 246, 244, 244, 82, 82, 250, 250, 250, 250, 
+    250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 252, 
+    253, 254, 255, 255, 82, 253, 253, 253, 253, 253, 253, 253, 253, 82, 253, 
+    253, 253, 82, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 
+    253, 253, 253, 253, 253, 253, 82, 253, 253, 253, 253, 253, 82, 82, 256, 
+    253, 255, 257, 255, 255, 255, 255, 255, 82, 257, 255, 255, 82, 255, 255, 
+    254, 258, 82, 82, 82, 82, 82, 82, 82, 255, 255, 82, 82, 82, 82, 82, 82, 
+    82, 253, 82, 253, 253, 254, 254, 82, 82, 259, 259, 259, 259, 259, 259, 
+    259, 259, 259, 259, 82, 253, 253, 82, 82, 82, 82, 82, 82, 260, 261, 261, 
+    82, 262, 262, 262, 262, 262, 262, 262, 262, 82, 262, 262, 262, 82, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 82, 82, 262, 261, 261, 261, 260, 260, 260, 260, 82, 261, 261, 
+    261, 82, 261, 261, 261, 263, 262, 264, 82, 82, 82, 82, 262, 262, 262, 
+    261, 265, 265, 265, 265, 265, 265, 265, 262, 262, 262, 260, 260, 82, 82, 
+    266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 265, 265, 265, 265, 
+    265, 265, 265, 265, 265, 267, 262, 262, 262, 262, 262, 262, 82, 82, 268, 
+    268, 82, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, 
+    269, 269, 269, 269, 269, 82, 82, 82, 269, 269, 269, 269, 269, 269, 269, 
+    269, 82, 269, 269, 269, 269, 269, 269, 269, 269, 269, 82, 269, 82, 82, 
+    82, 82, 270, 82, 82, 82, 82, 268, 268, 268, 271, 271, 271, 82, 271, 82, 
+    268, 268, 268, 268, 268, 268, 268, 268, 82, 82, 82, 82, 82, 82, 272, 272, 
+    272, 272, 272, 272, 272, 272, 272, 272, 82, 82, 268, 268, 273, 82, 82, 
+    82, 82, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 
+    274, 274, 274, 275, 274, 274, 275, 275, 275, 275, 276, 276, 277, 82, 82, 
+    82, 82, 278, 274, 274, 274, 274, 274, 274, 279, 275, 280, 280, 280, 280, 
+    275, 275, 275, 281, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 
+    283, 283, 82, 82, 82, 82, 82, 284, 284, 82, 284, 82, 82, 284, 284, 82, 
+    284, 82, 82, 284, 82, 82, 82, 82, 82, 82, 284, 284, 284, 284, 82, 284, 
+    284, 284, 284, 284, 284, 284, 82, 284, 284, 284, 82, 284, 82, 284, 82, 
+    82, 284, 284, 82, 284, 284, 284, 284, 285, 284, 284, 285, 285, 285, 285, 
+    286, 286, 82, 285, 285, 284, 82, 82, 284, 284, 284, 284, 284, 82, 287, 
+    82, 288, 288, 288, 288, 285, 285, 82, 82, 289, 289, 289, 289, 289, 289, 
+    289, 289, 289, 289, 82, 82, 284, 284, 284, 284, 290, 291, 291, 291, 292, 
+    293, 292, 292, 294, 292, 292, 295, 294, 296, 296, 296, 296, 296, 294, 
+    297, 296, 297, 297, 297, 298, 298, 297, 297, 297, 297, 297, 297, 299, 
+    299, 299, 299, 299, 299, 299, 299, 299, 299, 300, 300, 300, 300, 300, 
+    300, 300, 300, 300, 300, 301, 298, 297, 298, 297, 302, 303, 304, 303, 
+    304, 305, 305, 290, 290, 290, 290, 290, 290, 290, 290, 82, 290, 290, 290, 
+    290, 290, 290, 290, 290, 290, 290, 290, 290, 82, 82, 82, 82, 306, 307, 
+    308, 309, 308, 308, 308, 308, 308, 307, 307, 307, 307, 308, 310, 307, 
+    308, 311, 311, 312, 295, 311, 311, 290, 290, 290, 290, 290, 308, 308, 
+    308, 308, 308, 308, 308, 308, 308, 308, 308, 82, 308, 308, 308, 308, 308, 
+    308, 308, 308, 308, 308, 308, 308, 82, 301, 301, 297, 297, 297, 297, 297, 
+    297, 298, 297, 297, 297, 297, 297, 297, 82, 297, 297, 292, 292, 295, 292, 
+    293, 313, 313, 313, 313, 294, 294, 82, 82, 82, 82, 82, 314, 314, 314, 
+    314, 314, 314, 314, 314, 314, 314, 314, 315, 315, 316, 316, 316, 316, 
+    315, 316, 316, 316, 316, 316, 317, 315, 318, 318, 315, 315, 316, 316, 
+    314, 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 320, 320, 321, 
+    321, 321, 321, 314, 314, 314, 314, 314, 314, 315, 315, 316, 316, 314, 
+    314, 314, 314, 316, 316, 316, 314, 315, 315, 315, 314, 314, 315, 315, 
+    315, 315, 315, 315, 315, 314, 314, 314, 316, 316, 316, 316, 314, 314, 
+    314, 314, 314, 316, 315, 315, 316, 316, 315, 315, 315, 315, 315, 315, 
+    322, 314, 315, 319, 319, 315, 315, 315, 316, 323, 323, 324, 324, 324, 
+    324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 82, 324, 82, 82, 
+    82, 82, 82, 324, 82, 82, 325, 325, 325, 325, 325, 325, 325, 325, 325, 
+    325, 325, 326, 327, 325, 325, 325, 328, 328, 328, 328, 328, 328, 328, 
+    328, 329, 329, 329, 329, 329, 329, 329, 329, 330, 330, 330, 330, 330, 
+    330, 330, 330, 331, 331, 331, 331, 331, 331, 331, 331, 331, 82, 331, 331, 
+    331, 331, 82, 82, 331, 331, 331, 331, 331, 331, 331, 82, 331, 331, 331, 
+    82, 82, 332, 332, 332, 333, 334, 333, 333, 333, 333, 333, 333, 333, 335, 
+    335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, 
+    335, 335, 335, 335, 335, 82, 82, 82, 336, 336, 336, 336, 336, 336, 336, 
+    336, 336, 336, 82, 82, 82, 82, 82, 82, 337, 337, 337, 337, 337, 337, 337, 
+    337, 337, 337, 337, 337, 337, 337, 82, 82, 338, 338, 338, 338, 338, 338, 
+    82, 82, 339, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 340, 
+    340, 340, 340, 340, 340, 340, 340, 340, 341, 341, 340, 342, 343, 343, 
+    343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 
+    343, 343, 344, 345, 82, 82, 82, 346, 346, 346, 346, 346, 346, 346, 346, 
+    346, 346, 346, 199, 199, 199, 347, 347, 347, 346, 346, 346, 346, 346, 
+    346, 346, 346, 82, 82, 82, 82, 82, 82, 82, 348, 348, 348, 348, 348, 348, 
+    348, 348, 348, 348, 348, 348, 348, 82, 348, 348, 348, 348, 349, 349, 350, 
+    82, 82, 82, 351, 351, 351, 351, 351, 351, 351, 351, 351, 351, 352, 352, 
+    353, 199, 199, 82, 354, 354, 354, 354, 354, 354, 354, 354, 354, 354, 355, 
+    355, 82, 82, 82, 82, 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, 
+    356, 356, 356, 82, 356, 356, 356, 82, 357, 357, 82, 82, 82, 82, 358, 358, 
+    358, 358, 358, 358, 358, 358, 358, 358, 358, 358, 359, 359, 360, 359, 
+    359, 359, 359, 359, 359, 359, 360, 360, 360, 360, 360, 360, 360, 360, 
+    359, 360, 360, 359, 359, 359, 359, 359, 359, 359, 359, 359, 361, 359, 
+    362, 362, 363, 364, 362, 365, 362, 366, 358, 367, 82, 82, 368, 368, 368, 
+    368, 368, 368, 368, 368, 368, 368, 82, 82, 82, 82, 82, 82, 369, 369, 369, 
+    369, 369, 369, 369, 369, 369, 369, 82, 82, 82, 82, 82, 82, 370, 370, 371, 
+    371, 372, 373, 374, 370, 375, 375, 370, 376, 376, 376, 377, 82, 378, 378, 
+    378, 378, 378, 378, 378, 378, 378, 378, 82, 82, 82, 82, 82, 82, 379, 379, 
+    379, 379, 379, 379, 379, 379, 379, 379, 379, 380, 379, 379, 379, 379, 
+    379, 379, 379, 379, 379, 376, 376, 379, 379, 381, 379, 82, 82, 82, 82, 
+    82, 340, 340, 340, 340, 340, 340, 82, 82, 382, 382, 382, 382, 382, 382, 
+    382, 382, 382, 382, 382, 382, 382, 382, 382, 82, 383, 383, 383, 384, 384, 
+    384, 384, 383, 383, 384, 384, 384, 82, 82, 82, 82, 384, 384, 383, 384, 
+    384, 384, 384, 384, 384, 385, 386, 387, 82, 82, 82, 82, 388, 82, 82, 82, 
+    389, 389, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 391, 391, 
+    391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 82, 82, 391, 
+    391, 391, 391, 391, 82, 82, 82, 392, 392, 392, 392, 392, 392, 392, 392, 
+    392, 392, 392, 392, 82, 82, 82, 82, 392, 392, 82, 82, 82, 82, 82, 82, 
+    393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 394, 82, 82, 82, 395, 
+    395, 396, 396, 396, 396, 396, 396, 396, 396, 397, 397, 397, 397, 397, 
+    397, 397, 397, 397, 397, 397, 397, 397, 397, 397, 398, 399, 400, 400, 
+    401, 82, 82, 402, 402, 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, 
+    403, 403, 403, 404, 405, 404, 405, 405, 405, 405, 405, 405, 405, 82, 406, 
+    404, 405, 404, 404, 405, 405, 405, 405, 405, 405, 405, 405, 404, 404, 
+    404, 404, 404, 404, 405, 405, 407, 407, 407, 407, 407, 407, 407, 407, 82, 
+    82, 408, 409, 409, 409, 409, 409, 409, 409, 409, 409, 409, 82, 82, 82, 
+    82, 82, 82, 410, 410, 410, 410, 410, 410, 410, 411, 410, 410, 410, 410, 
+    410, 410, 82, 82, 97, 97, 97, 97, 97, 157, 157, 157, 157, 157, 157, 97, 
+    97, 157, 412, 82, 413, 413, 413, 413, 414, 415, 415, 415, 415, 415, 415, 
+    415, 415, 415, 415, 415, 415, 415, 415, 415, 416, 414, 413, 413, 413, 
+    413, 413, 414, 413, 414, 414, 414, 414, 414, 413, 414, 417, 415, 415, 
+    415, 415, 415, 415, 415, 82, 82, 82, 82, 418, 418, 418, 418, 418, 418, 
+    418, 418, 418, 418, 419, 419, 420, 419, 419, 419, 419, 421, 421, 421, 
+    421, 421, 421, 421, 421, 421, 421, 422, 423, 422, 422, 422, 422, 422, 
+    422, 422, 421, 421, 421, 421, 421, 421, 421, 421, 421, 82, 82, 82, 424, 
+    424, 425, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 
+    426, 426, 425, 424, 424, 424, 424, 425, 425, 424, 424, 427, 428, 424, 
+    424, 426, 426, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 426, 
+    426, 426, 426, 426, 426, 430, 430, 430, 430, 430, 430, 430, 430, 430, 
+    430, 430, 430, 430, 430, 431, 432, 433, 433, 432, 432, 432, 433, 432, 
+    433, 433, 433, 434, 434, 82, 82, 82, 82, 82, 82, 82, 82, 435, 435, 435, 
+    435, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 437, 
+    437, 437, 437, 437, 437, 437, 437, 438, 438, 438, 438, 438, 438, 438, 
+    438, 437, 437, 438, 439, 82, 82, 82, 440, 440, 440, 440, 440, 441, 441, 
+    441, 441, 441, 441, 441, 441, 441, 441, 82, 82, 82, 436, 436, 436, 442, 
+    442, 442, 442, 442, 442, 442, 442, 442, 442, 443, 443, 443, 443, 443, 
+    443, 443, 443, 443, 443, 443, 443, 443, 443, 444, 444, 444, 444, 444, 
+    444, 445, 445, 94, 82, 82, 82, 82, 82, 82, 82, 446, 446, 446, 446, 446, 
+    446, 446, 446, 97, 97, 97, 326, 447, 157, 157, 157, 157, 157, 97, 97, 
+    157, 157, 157, 157, 97, 448, 447, 447, 447, 447, 447, 447, 447, 449, 449, 
+    449, 449, 157, 449, 449, 449, 449, 448, 448, 97, 449, 449, 82, 97, 97, 
+    82, 82, 82, 82, 82, 82, 57, 57, 57, 57, 57, 57, 80, 80, 80, 80, 80, 94, 
+    60, 60, 60, 60, 60, 60, 60, 60, 60, 83, 83, 83, 83, 83, 60, 60, 60, 60, 
+    83, 83, 83, 83, 83, 57, 57, 57, 57, 57, 450, 57, 57, 57, 57, 57, 57, 57, 
+    57, 57, 57, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 83, 97, 97, 
+    157, 97, 97, 97, 97, 97, 97, 97, 157, 97, 97, 451, 452, 157, 453, 97, 97, 
+    97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 
+    97, 82, 82, 82, 82, 82, 97, 454, 157, 97, 157, 53, 57, 53, 57, 53, 57, 
+    57, 57, 57, 57, 57, 57, 57, 57, 53, 57, 80, 80, 80, 80, 80, 80, 80, 80, 
+    79, 79, 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, 80, 82, 82, 79, 79, 
+    79, 79, 79, 79, 82, 82, 82, 79, 82, 79, 82, 79, 82, 79, 455, 455, 455, 
+    455, 455, 455, 455, 455, 80, 80, 80, 80, 80, 82, 80, 80, 79, 79, 79, 79, 
+    455, 81, 80, 81, 81, 81, 80, 80, 80, 82, 80, 80, 79, 79, 79, 79, 455, 81, 
+    81, 81, 80, 80, 80, 80, 82, 82, 80, 80, 79, 79, 79, 79, 82, 81, 81, 81, 
+    79, 79, 79, 79, 79, 81, 81, 81, 82, 82, 80, 80, 80, 82, 80, 80, 79, 79, 
+    79, 79, 455, 456, 81, 82, 457, 457, 457, 457, 457, 457, 457, 458, 457, 
+    457, 457, 459, 460, 461, 462, 463, 464, 465, 466, 464, 467, 468, 39, 85, 
+    469, 470, 471, 472, 469, 470, 471, 472, 39, 39, 473, 85, 474, 474, 474, 
+    475, 476, 477, 478, 479, 480, 481, 482, 34, 483, 484, 483, 483, 484, 485, 
+    486, 486, 85, 43, 51, 39, 487, 487, 473, 488, 488, 85, 85, 85, 489, 490, 
+    491, 487, 487, 487, 85, 85, 85, 85, 85, 85, 85, 85, 492, 85, 488, 85, 
+    373, 85, 373, 373, 373, 373, 85, 373, 373, 457, 493, 494, 494, 494, 494, 
+    82, 495, 496, 497, 498, 499, 499, 499, 499, 499, 499, 500, 60, 82, 82, 
+    48, 500, 500, 500, 500, 500, 501, 501, 492, 490, 491, 502, 500, 48, 48, 
+    48, 48, 500, 500, 500, 500, 500, 501, 501, 492, 490, 491, 82, 60, 60, 60, 
+    60, 60, 82, 82, 82, 278, 278, 278, 278, 278, 278, 278, 503, 278, 504, 
+    278, 278, 37, 278, 278, 278, 278, 278, 278, 278, 278, 278, 503, 278, 278, 
+    278, 278, 503, 278, 278, 503, 505, 505, 505, 505, 505, 505, 505, 505, 
+    505, 97, 97, 447, 447, 97, 97, 97, 97, 447, 447, 447, 97, 97, 412, 412, 
+    412, 412, 97, 412, 412, 412, 447, 447, 97, 157, 97, 447, 447, 157, 157, 
+    157, 157, 97, 82, 82, 82, 82, 82, 82, 82, 41, 41, 506, 507, 41, 508, 41, 
+    506, 41, 507, 50, 506, 506, 506, 50, 50, 506, 506, 506, 509, 41, 506, 
+    510, 41, 492, 506, 506, 506, 506, 506, 41, 41, 41, 508, 508, 41, 506, 41, 
+    86, 41, 506, 41, 53, 511, 506, 506, 512, 50, 506, 506, 53, 506, 50, 449, 
+    449, 449, 449, 50, 41, 41, 50, 50, 506, 506, 513, 492, 492, 492, 492, 
+    506, 50, 50, 50, 50, 41, 492, 41, 41, 57, 313, 514, 514, 514, 515, 52, 
+    516, 514, 514, 514, 514, 514, 52, 515, 515, 52, 514, 517, 517, 517, 517, 
+    517, 517, 517, 517, 517, 517, 517, 517, 518, 518, 518, 518, 517, 517, 
+    518, 518, 518, 518, 518, 518, 518, 518, 518, 53, 57, 518, 518, 518, 518, 
+    52, 41, 41, 82, 82, 82, 82, 55, 55, 55, 55, 55, 508, 508, 508, 508, 508, 
+    492, 492, 41, 41, 41, 41, 492, 41, 41, 492, 41, 41, 492, 41, 41, 41, 41, 
+    41, 41, 41, 492, 41, 41, 41, 41, 41, 41, 41, 41, 41, 45, 45, 41, 41, 41, 
+    41, 41, 41, 41, 41, 41, 41, 41, 41, 492, 492, 41, 41, 55, 41, 55, 41, 41, 
+    41, 41, 41, 41, 41, 41, 41, 41, 45, 41, 41, 41, 41, 492, 492, 492, 492, 
+    492, 492, 492, 492, 492, 492, 492, 492, 55, 513, 519, 519, 513, 492, 492, 
+    55, 519, 513, 513, 519, 513, 513, 492, 55, 492, 519, 520, 521, 492, 519, 
+    513, 492, 492, 492, 519, 513, 513, 519, 55, 519, 519, 513, 513, 55, 513, 
+    55, 513, 55, 55, 55, 55, 519, 519, 513, 519, 513, 513, 513, 513, 513, 55, 
+    55, 55, 55, 492, 513, 492, 513, 519, 519, 513, 513, 513, 513, 513, 513, 
+    513, 513, 513, 513, 519, 513, 513, 513, 519, 492, 492, 492, 492, 492, 
+    519, 513, 513, 513, 492, 492, 492, 492, 492, 492, 492, 492, 492, 513, 
+    519, 55, 513, 492, 519, 519, 519, 519, 513, 513, 519, 519, 492, 492, 519, 
+    519, 513, 513, 519, 519, 513, 513, 519, 519, 513, 513, 513, 513, 513, 
+    492, 492, 513, 513, 513, 513, 492, 492, 55, 492, 492, 513, 55, 492, 492, 
+    492, 492, 492, 492, 492, 492, 513, 513, 492, 55, 513, 513, 513, 492, 492, 
+    492, 492, 492, 513, 519, 492, 513, 513, 513, 513, 513, 492, 492, 513, 
+    513, 492, 492, 492, 492, 513, 513, 513, 513, 513, 513, 513, 513, 492, 
+    522, 490, 491, 490, 491, 41, 41, 41, 41, 41, 41, 508, 41, 41, 41, 41, 41, 
+    41, 41, 523, 523, 41, 41, 41, 41, 513, 513, 41, 41, 41, 41, 41, 41, 41, 
+    524, 525, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 313, 313, 313, 313, 
+    313, 313, 313, 313, 313, 313, 313, 313, 313, 41, 492, 41, 41, 41, 41, 41, 
+    41, 41, 41, 313, 41, 41, 41, 41, 41, 492, 492, 492, 492, 492, 492, 492, 
+    492, 492, 41, 41, 41, 41, 492, 492, 41, 41, 41, 41, 41, 41, 41, 526, 526, 
+    526, 526, 41, 41, 41, 523, 527, 527, 523, 41, 41, 41, 41, 41, 41, 41, 41, 
+    41, 41, 41, 82, 41, 41, 41, 82, 82, 82, 82, 82, 52, 52, 52, 52, 52, 52, 
+    52, 52, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 528, 528, 528, 
+    528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 516, 52, 52, 52, 
+    52, 52, 52, 52, 52, 52, 52, 52, 52, 515, 508, 508, 508, 508, 508, 508, 
+    508, 508, 508, 508, 508, 508, 41, 41, 41, 41, 508, 508, 508, 508, 529, 
+    41, 41, 41, 41, 41, 508, 508, 508, 508, 41, 41, 508, 508, 41, 508, 508, 
+    508, 508, 508, 508, 508, 41, 41, 41, 41, 41, 41, 41, 41, 508, 508, 41, 
+    41, 508, 55, 41, 41, 41, 41, 508, 508, 41, 41, 508, 55, 41, 41, 41, 41, 
+    508, 508, 508, 41, 41, 508, 41, 41, 508, 508, 41, 41, 41, 41, 41, 41, 41, 
+    508, 492, 492, 492, 492, 492, 530, 530, 492, 527, 527, 527, 527, 41, 508, 
+    508, 41, 41, 508, 41, 41, 41, 41, 508, 508, 41, 41, 41, 41, 523, 523, 
+    529, 529, 527, 41, 527, 527, 531, 532, 531, 527, 41, 527, 527, 527, 41, 
+    41, 41, 41, 508, 41, 508, 41, 41, 41, 41, 41, 526, 526, 526, 526, 526, 
+    526, 526, 526, 526, 526, 526, 526, 41, 41, 41, 41, 508, 508, 41, 508, 
+    508, 508, 41, 508, 531, 508, 508, 41, 508, 508, 41, 55, 41, 41, 41, 41, 
+    41, 41, 41, 523, 41, 41, 41, 526, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 
+    508, 508, 41, 526, 41, 41, 41, 41, 41, 41, 41, 41, 526, 526, 313, 41, 41, 
+    41, 41, 41, 41, 41, 41, 523, 523, 531, 527, 527, 527, 527, 523, 523, 531, 
+    531, 531, 508, 508, 508, 508, 531, 526, 531, 531, 531, 508, 531, 523, 
+    508, 508, 508, 531, 531, 508, 508, 531, 508, 508, 531, 531, 531, 41, 508, 
+    41, 41, 41, 41, 508, 508, 523, 508, 508, 508, 508, 508, 508, 531, 523, 
+    523, 531, 523, 508, 531, 531, 533, 523, 508, 508, 523, 531, 531, 527, 
+    527, 527, 527, 527, 526, 41, 41, 527, 527, 534, 534, 532, 532, 41, 41, 
+    526, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 45, 41, 41, 41, 41, 
+    41, 41, 526, 41, 526, 41, 41, 41, 41, 526, 526, 526, 41, 535, 41, 41, 41, 
+    536, 536, 536, 536, 536, 536, 41, 537, 537, 527, 41, 41, 41, 490, 491, 
+    490, 491, 490, 491, 490, 491, 490, 491, 490, 491, 490, 491, 52, 52, 516, 
+    516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 41, 526, 526, 526, 
+    41, 41, 41, 41, 41, 41, 41, 526, 513, 492, 492, 513, 513, 490, 491, 492, 
+    513, 513, 492, 513, 513, 513, 492, 492, 492, 492, 492, 513, 513, 513, 
+    513, 492, 492, 492, 492, 492, 513, 513, 513, 492, 492, 492, 513, 513, 
+    513, 513, 16, 32, 16, 32, 16, 32, 16, 32, 490, 491, 538, 538, 538, 538, 
+    538, 538, 538, 538, 492, 492, 492, 490, 491, 16, 32, 490, 491, 490, 491, 
+    490, 491, 490, 491, 490, 491, 492, 492, 513, 513, 513, 513, 513, 513, 
+    492, 492, 492, 492, 492, 492, 492, 513, 513, 513, 513, 513, 513, 492, 
+    492, 492, 513, 492, 492, 492, 492, 513, 513, 513, 513, 513, 492, 513, 
+    513, 492, 492, 490, 491, 490, 491, 513, 492, 492, 492, 492, 513, 492, 
+    513, 513, 513, 492, 492, 513, 513, 492, 492, 492, 492, 492, 492, 492, 
+    492, 492, 492, 513, 513, 513, 513, 513, 513, 492, 492, 490, 491, 492, 
+    492, 492, 492, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 
+    492, 513, 513, 513, 513, 492, 492, 513, 492, 513, 492, 492, 513, 492, 
+    513, 513, 513, 513, 492, 492, 492, 492, 492, 513, 513, 492, 492, 492, 
+    492, 513, 513, 513, 513, 492, 513, 513, 492, 492, 513, 513, 492, 492, 
+    492, 492, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 492, 
+    492, 513, 513, 513, 513, 513, 513, 513, 513, 492, 513, 513, 513, 513, 
+    513, 513, 513, 513, 492, 492, 492, 492, 492, 513, 492, 513, 492, 492, 
+    492, 513, 513, 513, 513, 513, 492, 492, 492, 492, 513, 492, 492, 492, 
+    513, 513, 513, 513, 513, 492, 513, 492, 492, 41, 41, 41, 526, 526, 41, 
+    41, 41, 492, 492, 492, 492, 492, 41, 41, 492, 492, 492, 492, 492, 492, 
+    41, 41, 41, 526, 41, 41, 41, 41, 535, 508, 508, 41, 41, 41, 41, 82, 82, 
+    41, 41, 41, 41, 41, 41, 41, 41, 82, 82, 41, 41, 82, 82, 82, 41, 41, 41, 
+    41, 82, 41, 41, 41, 41, 41, 41, 41, 41, 82, 82, 82, 82, 82, 82, 82, 82, 
+    82, 82, 41, 41, 41, 41, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 
+    539, 539, 539, 539, 539, 82, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 82, 53, 57, 53, 53, 53, 57, 57, 53, 57, 53, 
+    57, 53, 57, 53, 53, 53, 53, 57, 53, 57, 57, 53, 57, 57, 57, 57, 57, 57, 
+    60, 60, 53, 53, 88, 89, 88, 89, 89, 541, 541, 541, 541, 541, 541, 88, 89, 
+    88, 89, 542, 542, 542, 88, 89, 82, 82, 82, 82, 82, 543, 544, 544, 544, 
+    545, 543, 544, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, 
+    546, 546, 546, 82, 546, 82, 82, 82, 82, 82, 546, 82, 82, 547, 547, 547, 
+    547, 547, 547, 547, 547, 82, 82, 82, 82, 82, 82, 82, 548, 549, 82, 82, 
+    82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 550, 96, 96, 96, 96, 96, 
+    96, 96, 96, 551, 551, 43, 51, 43, 51, 551, 551, 551, 43, 51, 551, 43, 51, 
+    373, 373, 373, 373, 373, 373, 373, 373, 85, 466, 552, 373, 553, 85, 43, 
+    51, 85, 85, 43, 51, 490, 491, 490, 491, 490, 491, 490, 491, 373, 373, 
+    373, 373, 371, 61, 373, 373, 85, 373, 373, 85, 85, 85, 85, 85, 554, 554, 
+    373, 373, 373, 85, 466, 373, 471, 373, 373, 82, 82, 82, 555, 555, 555, 
+    555, 555, 555, 555, 555, 555, 555, 82, 555, 555, 555, 555, 555, 555, 555, 
+    555, 555, 82, 82, 82, 82, 555, 555, 555, 555, 555, 555, 82, 82, 523, 523, 
+    523, 523, 523, 523, 523, 523, 523, 523, 523, 523, 82, 82, 82, 82, 556, 
+    557, 557, 558, 523, 559, 560, 561, 524, 525, 524, 525, 524, 525, 524, 
+    525, 524, 525, 523, 523, 524, 525, 524, 525, 524, 525, 524, 525, 562, 
+    563, 564, 564, 523, 561, 561, 561, 561, 561, 561, 561, 561, 561, 565, 
+    566, 567, 568, 569, 569, 570, 571, 571, 571, 571, 572, 523, 523, 561, 
+    561, 561, 559, 573, 558, 523, 527, 82, 574, 575, 574, 575, 574, 575, 574, 
+    575, 574, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 
+    575, 575, 575, 575, 575, 574, 575, 575, 575, 575, 575, 575, 575, 574, 
+    575, 574, 575, 574, 575, 575, 575, 575, 575, 575, 574, 575, 575, 575, 
+    575, 575, 575, 574, 574, 82, 82, 576, 576, 577, 577, 578, 578, 575, 562, 
+    579, 580, 579, 580, 579, 580, 579, 580, 579, 580, 580, 580, 580, 580, 
+    580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 579, 580, 
+    580, 580, 580, 580, 580, 580, 579, 580, 579, 580, 579, 580, 580, 580, 
+    580, 580, 580, 579, 580, 580, 580, 580, 580, 580, 579, 579, 580, 580, 
+    580, 580, 581, 582, 583, 583, 580, 82, 82, 82, 82, 82, 584, 584, 584, 
+    584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 82, 
+    82, 82, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 
+    585, 585, 585, 585, 585, 585, 585, 585, 585, 82, 586, 586, 587, 587, 587, 
+    587, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 584, 584, 584, 82, 
+    82, 82, 82, 82, 579, 579, 579, 579, 579, 579, 579, 579, 588, 588, 588, 
+    588, 588, 588, 588, 588, 588, 588, 588, 588, 588, 589, 589, 82, 587, 587, 
+    587, 587, 587, 587, 587, 587, 587, 587, 586, 586, 586, 586, 586, 586, 
+    590, 590, 590, 590, 590, 590, 590, 590, 523, 591, 591, 591, 591, 591, 
+    591, 591, 591, 591, 591, 591, 591, 591, 591, 591, 588, 588, 588, 588, 
+    589, 589, 589, 586, 586, 591, 591, 591, 591, 591, 591, 591, 586, 586, 
+    586, 586, 523, 523, 523, 523, 592, 592, 592, 592, 592, 592, 592, 592, 
+    592, 592, 592, 592, 592, 592, 592, 82, 586, 586, 586, 586, 586, 586, 586, 
+    523, 523, 523, 523, 586, 586, 586, 586, 586, 586, 586, 586, 586, 586, 
+    586, 523, 523, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 593, 
+    593, 593, 593, 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, 595, 
+    595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 595, 596, 595, 
+    595, 595, 595, 595, 595, 595, 82, 82, 82, 597, 597, 597, 597, 597, 597, 
+    597, 597, 597, 597, 597, 597, 597, 597, 597, 82, 598, 598, 598, 598, 598, 
+    598, 598, 598, 599, 599, 599, 599, 599, 599, 600, 600, 601, 601, 601, 
+    601, 601, 601, 601, 601, 601, 601, 601, 601, 602, 603, 604, 603, 605, 
+    605, 605, 605, 605, 605, 605, 605, 605, 605, 601, 601, 82, 82, 82, 82, 
+    91, 94, 91, 94, 91, 94, 606, 96, 98, 98, 98, 607, 96, 96, 96, 96, 96, 96, 
+    96, 96, 96, 96, 607, 608, 91, 94, 91, 94, 450, 450, 96, 96, 609, 609, 
+    609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 609, 610, 610, 
+    610, 610, 610, 610, 610, 610, 610, 610, 611, 611, 612, 613, 613, 613, 
+    613, 613, 63, 63, 63, 63, 63, 63, 63, 61, 61, 61, 61, 61, 61, 61, 61, 61, 
+    63, 63, 53, 57, 53, 57, 53, 57, 57, 57, 53, 57, 53, 57, 53, 57, 60, 57, 
+    57, 57, 57, 57, 57, 57, 57, 53, 57, 53, 57, 53, 53, 57, 61, 614, 614, 53, 
+    57, 53, 57, 58, 53, 57, 53, 57, 57, 57, 53, 57, 53, 57, 53, 53, 53, 53, 
+    53, 82, 53, 53, 53, 53, 53, 57, 53, 57, 82, 82, 82, 82, 82, 82, 82, 58, 
+    60, 60, 57, 58, 58, 58, 58, 58, 615, 615, 616, 615, 615, 615, 617, 615, 
+    615, 615, 615, 616, 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 
+    615, 615, 615, 615, 615, 618, 618, 616, 616, 618, 619, 619, 619, 619, 82, 
+    82, 82, 82, 620, 620, 620, 620, 620, 620, 313, 313, 503, 512, 82, 82, 82, 
+    82, 82, 82, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 
+    622, 622, 623, 623, 624, 624, 625, 625, 625, 625, 625, 625, 625, 625, 
+    625, 625, 625, 625, 625, 625, 625, 625, 625, 625, 624, 624, 624, 624, 
+    624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 624, 626, 627, 82, 
+    82, 82, 82, 82, 82, 82, 82, 628, 628, 629, 629, 629, 629, 629, 629, 629, 
+    629, 629, 629, 82, 82, 82, 82, 82, 82, 198, 198, 198, 198, 198, 198, 198, 
+    198, 198, 198, 195, 195, 195, 195, 195, 195, 201, 201, 201, 195, 630, 
+    195, 82, 82, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 632, 
+    632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 
+    632, 632, 632, 632, 633, 633, 633, 633, 633, 634, 634, 634, 199, 635, 
+    636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 636, 
+    636, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 637, 638, 639, 82, 
+    82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 640, 328, 328, 328, 328, 328, 82, 
+    82, 82, 641, 641, 641, 642, 643, 643, 643, 643, 643, 643, 643, 643, 643, 
+    643, 643, 643, 643, 643, 643, 644, 642, 642, 641, 641, 641, 641, 642, 
+    642, 641, 642, 642, 642, 645, 646, 646, 646, 646, 646, 646, 647, 647, 
+    647, 646, 646, 646, 646, 82, 62, 648, 648, 648, 648, 648, 648, 648, 648, 
+    648, 648, 82, 82, 82, 82, 646, 646, 314, 314, 314, 314, 314, 316, 649, 
+    314, 319, 319, 314, 314, 314, 314, 314, 82, 650, 650, 650, 650, 650, 650, 
+    650, 650, 650, 651, 651, 651, 651, 651, 651, 652, 652, 651, 651, 652, 
+    652, 651, 651, 82, 650, 650, 650, 651, 650, 650, 650, 650, 650, 650, 650, 
+    650, 651, 652, 82, 82, 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, 
+    82, 82, 654, 655, 655, 655, 649, 314, 314, 314, 314, 314, 314, 323, 323, 
+    323, 314, 315, 316, 315, 314, 314, 656, 656, 656, 656, 656, 656, 656, 
+    656, 657, 656, 657, 657, 658, 656, 656, 657, 657, 656, 656, 656, 656, 
+    656, 657, 657, 656, 657, 656, 82, 82, 82, 82, 82, 82, 82, 82, 656, 656, 
+    659, 660, 660, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 
+    662, 663, 663, 662, 662, 664, 664, 661, 665, 665, 662, 666, 82, 82, 331, 
+    331, 331, 331, 331, 331, 82, 57, 57, 57, 614, 60, 60, 60, 60, 57, 57, 57, 
+    57, 57, 80, 82, 82, 338, 338, 338, 338, 338, 338, 338, 338, 661, 661, 
+    661, 662, 662, 663, 662, 662, 663, 662, 662, 664, 662, 666, 82, 82, 667, 
+    667, 667, 667, 667, 667, 667, 667, 667, 667, 82, 82, 82, 82, 82, 82, 668, 
+    669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, 
+    669, 669, 669, 669, 669, 668, 669, 669, 669, 669, 669, 669, 669, 82, 82, 
+    82, 82, 329, 329, 329, 329, 329, 329, 329, 82, 82, 82, 82, 330, 330, 330, 
+    330, 330, 330, 330, 330, 330, 82, 82, 82, 82, 670, 670, 670, 670, 670, 
+    670, 670, 670, 671, 671, 671, 671, 671, 671, 671, 671, 593, 593, 594, 
+    594, 594, 594, 594, 594, 57, 57, 57, 57, 57, 57, 57, 82, 82, 82, 82, 102, 
+    102, 102, 102, 102, 82, 82, 82, 82, 82, 130, 672, 130, 130, 673, 130, 
+    130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 82, 130, 130, 
+    130, 130, 130, 82, 130, 82, 130, 130, 82, 130, 130, 82, 130, 130, 147, 
+    147, 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, 
+    674, 674, 674, 82, 82, 82, 82, 82, 82, 82, 82, 82, 147, 147, 147, 147, 
+    147, 147, 147, 147, 147, 147, 147, 675, 471, 82, 82, 147, 147, 147, 147, 
+    147, 147, 147, 147, 147, 147, 136, 139, 82, 82, 676, 676, 676, 676, 676, 
+    676, 676, 676, 677, 557, 557, 677, 677, 678, 678, 563, 564, 679, 82, 82, 
+    82, 82, 82, 82, 97, 97, 97, 97, 97, 97, 97, 157, 157, 157, 157, 157, 157, 
+    157, 96, 96, 558, 570, 570, 680, 680, 563, 564, 563, 564, 563, 564, 563, 
+    564, 563, 564, 563, 564, 563, 564, 563, 564, 558, 558, 563, 564, 558, 
+    558, 558, 558, 680, 680, 680, 681, 558, 681, 82, 581, 682, 678, 678, 570, 
+    524, 525, 524, 525, 524, 525, 683, 558, 558, 684, 685, 686, 686, 687, 82, 
+    558, 688, 689, 558, 82, 82, 82, 82, 147, 147, 147, 147, 147, 82, 82, 493, 
+    82, 690, 691, 692, 693, 694, 691, 691, 695, 696, 691, 697, 698, 699, 698, 
+    700, 701, 701, 701, 701, 701, 701, 701, 701, 701, 701, 702, 703, 704, 
+    705, 704, 690, 691, 706, 706, 706, 706, 706, 706, 706, 706, 706, 706, 
+    706, 706, 706, 706, 706, 706, 706, 706, 695, 691, 696, 707, 708, 707, 
+    709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 709, 
+    709, 709, 709, 709, 695, 705, 696, 705, 695, 696, 710, 711, 712, 710, 
+    713, 714, 715, 715, 715, 715, 715, 715, 715, 715, 715, 716, 714, 714, 
     714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 
-    714, 714, 714, 714, 714, 714, 64, 64, 64, 715, 715, 715, 715, 715, 715, 
-    715, 715, 715, 715, 64, 715, 715, 715, 715, 715, 715, 715, 715, 715, 716, 
-    716, 716, 717, 717, 717, 716, 716, 717, 718, 719, 717, 720, 720, 720, 
-    720, 720, 720, 64, 64, 721, 721, 721, 721, 721, 721, 721, 64, 721, 64, 
-    721, 721, 721, 721, 64, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 
-    721, 721, 721, 721, 721, 64, 721, 721, 722, 64, 64, 64, 64, 64, 64, 723, 
-    723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 723, 
-    724, 725, 725, 725, 724, 724, 724, 724, 724, 724, 726, 727, 64, 64, 64, 
-    64, 64, 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, 64, 64, 64, 64, 
-    64, 64, 729, 729, 730, 730, 64, 731, 731, 731, 731, 731, 731, 731, 731, 
-    64, 64, 731, 731, 64, 64, 731, 731, 731, 731, 731, 731, 731, 731, 731, 
-    731, 731, 731, 731, 731, 64, 731, 731, 731, 731, 731, 731, 731, 64, 731, 
-    731, 64, 731, 731, 731, 731, 731, 64, 64, 732, 731, 730, 730, 729, 730, 
-    730, 730, 730, 64, 64, 730, 730, 64, 64, 730, 730, 733, 64, 64, 731, 64, 
-    64, 64, 64, 64, 64, 730, 64, 64, 64, 64, 64, 731, 731, 731, 731, 731, 
-    730, 730, 64, 64, 734, 734, 734, 734, 734, 734, 734, 64, 64, 64, 735, 
-    735, 735, 735, 735, 735, 735, 735, 736, 736, 736, 737, 737, 737, 737, 
-    737, 737, 736, 737, 736, 736, 736, 736, 737, 737, 736, 738, 739, 735, 
-    735, 740, 735, 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, 64, 64, 
-    64, 64, 64, 64, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 
-    742, 742, 742, 742, 743, 743, 743, 744, 744, 744, 744, 64, 64, 743, 743, 
-    743, 743, 744, 744, 743, 745, 746, 747, 747, 747, 747, 747, 747, 747, 
-    747, 747, 747, 747, 747, 747, 747, 747, 742, 742, 742, 742, 744, 744, 64, 
-    64, 748, 748, 748, 748, 748, 748, 748, 748, 749, 749, 749, 750, 750, 750, 
-    750, 750, 750, 750, 750, 749, 749, 750, 749, 751, 750, 752, 752, 752, 
-    748, 64, 64, 64, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 64, 
-    64, 64, 64, 64, 64, 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, 
-    754, 755, 756, 755, 756, 756, 755, 755, 755, 755, 755, 755, 757, 758, 
-    759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 64, 64, 64, 64, 64, 64, 
-    760, 760, 760, 760, 760, 760, 760, 760, 760, 760, 64, 64, 64, 761, 761, 
-    761, 762, 762, 761, 761, 761, 761, 762, 761, 761, 761, 761, 763, 64, 64, 
-    64, 64, 764, 764, 764, 764, 764, 764, 764, 764, 764, 764, 765, 765, 766, 
-    766, 766, 767, 768, 768, 768, 768, 768, 768, 768, 768, 769, 769, 769, 
-    769, 769, 769, 769, 769, 770, 770, 770, 770, 770, 770, 770, 770, 770, 
-    770, 771, 771, 771, 771, 771, 771, 771, 771, 771, 64, 64, 64, 64, 64, 64, 
-    64, 64, 64, 64, 64, 64, 772, 773, 773, 773, 773, 773, 773, 773, 773, 773, 
-    64, 64, 64, 64, 64, 64, 64, 774, 774, 774, 774, 774, 774, 774, 774, 774, 
-    774, 64, 64, 64, 64, 64, 64, 775, 775, 775, 775, 775, 775, 775, 775, 775, 
-    775, 775, 775, 775, 775, 775, 64, 776, 776, 776, 776, 776, 64, 64, 64, 
-    774, 774, 774, 774, 64, 64, 64, 64, 777, 777, 777, 777, 777, 777, 777, 
-    777, 777, 777, 777, 777, 777, 777, 777, 64, 778, 778, 778, 778, 778, 778, 
-    778, 778, 778, 778, 778, 778, 778, 778, 778, 64, 511, 64, 64, 64, 64, 64, 
-    64, 64, 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, 
-    779, 779, 64, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 64, 64, 
-    64, 64, 781, 781, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 
-    782, 782, 782, 64, 64, 783, 783, 783, 783, 783, 784, 64, 64, 785, 785, 
-    785, 785, 785, 785, 785, 785, 786, 786, 786, 786, 786, 786, 786, 787, 
-    787, 787, 787, 787, 788, 788, 788, 788, 789, 789, 789, 789, 787, 788, 64, 
-    64, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 64, 791, 791, 791, 
-    791, 791, 791, 791, 64, 785, 785, 785, 785, 785, 64, 64, 64, 64, 64, 785, 
-    785, 785, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 
-    792, 64, 64, 64, 792, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 
-    793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 793, 64, 64, 64, 
-    64, 64, 64, 64, 64, 794, 794, 794, 794, 795, 795, 795, 795, 795, 795, 
-    795, 795, 795, 795, 795, 795, 795, 486, 482, 64, 64, 64, 64, 64, 64, 796, 
-    796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 64, 64, 64, 64, 64, 
-    796, 796, 796, 796, 796, 64, 64, 64, 796, 64, 64, 64, 64, 64, 64, 64, 
-    796, 796, 64, 64, 797, 798, 799, 800, 410, 410, 410, 410, 64, 64, 64, 64, 
-    277, 277, 277, 277, 277, 277, 64, 64, 277, 277, 277, 277, 277, 277, 277, 
-    64, 64, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 801, 
-    801, 400, 400, 400, 277, 277, 277, 802, 801, 801, 801, 801, 801, 410, 
-    410, 410, 410, 410, 410, 410, 410, 136, 136, 136, 136, 136, 136, 136, 
-    136, 277, 277, 78, 78, 78, 78, 78, 136, 136, 277, 277, 277, 277, 277, 
-    277, 78, 78, 78, 78, 277, 277, 277, 64, 64, 64, 64, 64, 64, 64, 606, 606, 
-    803, 803, 803, 606, 64, 64, 521, 521, 64, 64, 64, 64, 64, 64, 442, 442, 
-    442, 442, 442, 442, 442, 442, 442, 442, 34, 34, 34, 34, 34, 34, 34, 34, 
-    34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 442, 442, 442, 442, 442, 442, 
-    442, 442, 442, 442, 34, 34, 34, 34, 34, 34, 34, 64, 34, 34, 34, 34, 34, 
-    34, 442, 64, 442, 442, 64, 64, 442, 64, 64, 442, 442, 64, 64, 442, 442, 
-    442, 442, 64, 442, 442, 34, 34, 64, 34, 64, 34, 34, 34, 34, 34, 34, 34, 
-    64, 34, 34, 34, 34, 34, 34, 34, 442, 442, 64, 442, 442, 442, 442, 64, 64, 
-    442, 442, 442, 442, 442, 442, 442, 442, 64, 442, 442, 442, 442, 442, 442, 
-    442, 64, 34, 34, 442, 442, 64, 442, 442, 442, 442, 64, 442, 442, 442, 
-    442, 442, 64, 442, 64, 64, 64, 442, 442, 442, 442, 442, 442, 442, 64, 34, 
-    34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 64, 64, 442, 804, 34, 34, 34, 
-    34, 34, 34, 34, 34, 34, 445, 34, 34, 34, 34, 34, 34, 442, 442, 442, 442, 
-    442, 442, 442, 442, 442, 804, 34, 34, 34, 34, 34, 34, 34, 34, 34, 445, 
-    34, 34, 442, 442, 442, 442, 442, 804, 34, 34, 34, 34, 34, 34, 34, 34, 34, 
-    445, 34, 34, 34, 34, 34, 34, 442, 442, 442, 442, 442, 442, 442, 442, 442, 
-    804, 34, 445, 34, 34, 34, 34, 34, 34, 34, 34, 442, 34, 64, 64, 805, 805, 
-    805, 805, 805, 805, 805, 805, 805, 805, 806, 806, 806, 806, 806, 806, 
-    806, 806, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 
-    807, 807, 807, 806, 806, 806, 806, 807, 807, 807, 807, 807, 807, 807, 
-    807, 807, 807, 806, 806, 806, 806, 806, 806, 806, 806, 807, 806, 806, 
-    806, 806, 806, 806, 807, 806, 806, 808, 808, 808, 808, 808, 64, 64, 64, 
-    64, 64, 64, 64, 807, 807, 807, 807, 807, 64, 807, 807, 807, 807, 807, 
-    807, 807, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, 
-    809, 64, 64, 810, 810, 810, 810, 810, 810, 810, 810, 810, 811, 811, 811, 
-    811, 811, 811, 811, 64, 126, 126, 126, 126, 64, 126, 126, 126, 64, 126, 
-    126, 64, 126, 64, 64, 126, 64, 126, 126, 126, 126, 126, 126, 126, 126, 
-    126, 126, 64, 126, 126, 126, 126, 64, 126, 64, 126, 64, 64, 64, 64, 64, 
-    64, 126, 64, 64, 64, 64, 126, 64, 126, 64, 126, 64, 126, 126, 126, 64, 
-    126, 64, 126, 64, 126, 64, 126, 64, 126, 126, 126, 126, 64, 126, 64, 126, 
-    126, 64, 126, 126, 126, 126, 126, 126, 126, 126, 126, 64, 64, 64, 64, 64, 
-    126, 126, 126, 64, 126, 126, 126, 113, 113, 64, 64, 64, 64, 64, 64, 64, 
-    26, 26, 26, 26, 26, 26, 26, 33, 33, 33, 446, 446, 64, 64, 64, 453, 453, 
-    453, 453, 453, 453, 277, 64, 453, 453, 26, 26, 64, 64, 64, 64, 453, 453, 
-    453, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 277, 277, 812, 489, 489, 
-    64, 64, 64, 64, 64, 489, 489, 489, 64, 64, 64, 64, 64, 489, 64, 64, 64, 
-    64, 64, 64, 64, 489, 489, 64, 64, 64, 64, 64, 64, 26, 26, 26, 47, 47, 47, 
-    47, 47, 26, 26, 64, 26, 26, 26, 26, 26, 26, 26, 26, 26, 64, 26, 26, 26, 
-    26, 64, 64, 64, 64, 64, 64, 64, 26, 26, 26, 26, 26, 64, 64, 64, 496, 496, 
-    496, 496, 496, 496, 496, 497, 496, 496, 496, 496, 496, 497, 497, 497, 
-    497, 497, 497, 497, 497, 497, 64, 64, 64, 410, 64, 64, 64, 64, 64, 64, 
-    410, 410, 410, 410, 410, 410, 410, 410, 565, 565, 565, 565, 565, 565, 64, 
-    64, 
+    714, 714, 714, 714, 714, 717, 717, 718, 718, 718, 718, 718, 718, 718, 
+    718, 718, 718, 718, 718, 718, 718, 718, 82, 82, 82, 718, 718, 718, 718, 
+    718, 718, 82, 82, 718, 718, 718, 82, 82, 82, 719, 693, 705, 707, 720, 
+    693, 693, 82, 721, 722, 722, 722, 722, 721, 721, 82, 82, 723, 723, 723, 
+    724, 508, 82, 82, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 
+    725, 82, 725, 725, 725, 725, 725, 725, 725, 725, 725, 725, 82, 725, 725, 
+    725, 82, 725, 725, 82, 725, 725, 725, 725, 725, 725, 725, 82, 82, 725, 
+    725, 725, 82, 82, 82, 82, 82, 199, 373, 199, 82, 82, 82, 82, 620, 620, 
+    620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, 82, 82, 82, 313, 
+    726, 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, 726, 727, 
+    727, 727, 727, 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, 
+    728, 728, 728, 728, 728, 728, 727, 727, 728, 729, 729, 82, 41, 41, 41, 
+    41, 82, 82, 82, 82, 728, 82, 82, 82, 82, 82, 82, 82, 313, 313, 313, 313, 
+    313, 157, 82, 82, 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, 
+    730, 730, 82, 82, 82, 731, 731, 731, 731, 731, 731, 731, 731, 731, 82, 
+    82, 82, 82, 82, 82, 82, 157, 500, 500, 500, 500, 500, 500, 500, 500, 500, 
+    500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 82, 82, 82, 82, 732, 
+    732, 732, 732, 732, 732, 732, 732, 733, 733, 733, 733, 82, 82, 82, 82, 
+    734, 734, 734, 734, 734, 734, 734, 734, 734, 735, 734, 734, 734, 734, 
+    734, 734, 734, 734, 735, 82, 82, 82, 82, 82, 736, 736, 736, 736, 736, 
+    736, 736, 736, 736, 736, 736, 736, 736, 736, 737, 737, 737, 737, 737, 82, 
+    82, 82, 82, 82, 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, 738, 
+    738, 738, 738, 82, 739, 740, 740, 740, 740, 740, 740, 740, 740, 740, 740, 
+    740, 740, 82, 82, 82, 82, 741, 742, 742, 742, 742, 742, 82, 82, 743, 743, 
+    743, 743, 743, 743, 743, 743, 744, 744, 744, 744, 744, 744, 744, 744, 
+    745, 745, 745, 745, 745, 745, 745, 745, 746, 746, 746, 746, 746, 746, 
+    746, 746, 746, 746, 746, 746, 746, 746, 82, 82, 747, 747, 747, 747, 747, 
+    747, 747, 747, 747, 747, 82, 82, 82, 82, 82, 82, 748, 748, 748, 748, 748, 
+    748, 748, 748, 748, 748, 748, 748, 82, 82, 82, 82, 749, 749, 749, 749, 
+    749, 749, 749, 749, 749, 749, 749, 749, 82, 82, 82, 82, 750, 750, 750, 
+    750, 750, 750, 750, 750, 751, 751, 751, 751, 751, 751, 751, 751, 751, 
+    751, 751, 751, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 752, 753, 753, 
+    753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 82, 753, 
+    753, 753, 753, 753, 753, 82, 82, 754, 754, 754, 754, 754, 754, 82, 82, 
+    754, 82, 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, 754, 
+    754, 754, 754, 754, 754, 754, 754, 82, 754, 754, 82, 82, 82, 754, 82, 82, 
+    754, 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, 755, 
+    755, 82, 756, 757, 757, 757, 757, 757, 757, 757, 757, 758, 758, 758, 758, 
+    758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, 759, 759, 760, 
+    760, 760, 760, 760, 760, 760, 761, 761, 761, 761, 761, 761, 761, 761, 
+    761, 761, 761, 761, 761, 761, 761, 82, 82, 82, 82, 82, 82, 82, 82, 762, 
+    762, 762, 762, 762, 762, 762, 762, 762, 763, 763, 763, 763, 763, 763, 
+    763, 763, 763, 763, 763, 82, 763, 763, 82, 82, 82, 82, 82, 764, 764, 764, 
+    764, 764, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 
+    765, 765, 766, 766, 766, 766, 766, 766, 82, 82, 82, 767, 768, 768, 768, 
+    768, 768, 768, 768, 768, 768, 768, 82, 82, 82, 82, 82, 769, 770, 770, 
+    770, 770, 770, 770, 770, 770, 771, 771, 771, 771, 771, 771, 771, 771, 82, 
+    82, 82, 82, 772, 772, 771, 771, 772, 772, 772, 772, 772, 772, 772, 772, 
+    82, 82, 772, 772, 772, 772, 772, 772, 773, 774, 774, 774, 82, 774, 774, 
+    82, 82, 82, 82, 82, 774, 775, 774, 776, 773, 773, 773, 773, 82, 773, 773, 
+    773, 82, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 
+    773, 773, 773, 773, 773, 773, 82, 82, 82, 82, 776, 777, 775, 82, 82, 82, 
+    82, 778, 779, 779, 779, 779, 779, 779, 779, 779, 780, 780, 780, 780, 780, 
+    780, 780, 780, 781, 82, 82, 82, 82, 82, 82, 82, 782, 782, 782, 782, 782, 
+    782, 782, 782, 782, 782, 782, 782, 782, 783, 783, 784, 785, 785, 785, 
+    785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 786, 786, 786, 787, 
+    787, 787, 787, 787, 787, 787, 787, 788, 787, 787, 787, 787, 787, 787, 
+    787, 787, 787, 787, 787, 787, 789, 790, 82, 82, 82, 82, 791, 791, 791, 
+    791, 791, 792, 792, 792, 792, 792, 792, 793, 82, 794, 794, 794, 794, 794, 
+    794, 794, 794, 794, 794, 794, 794, 794, 794, 82, 82, 82, 795, 795, 795, 
+    795, 795, 795, 795, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 
+    796, 796, 796, 796, 82, 82, 797, 797, 797, 797, 797, 797, 797, 797, 798, 
+    798, 798, 798, 798, 798, 798, 798, 798, 798, 798, 82, 82, 82, 82, 82, 
+    799, 799, 799, 799, 799, 799, 799, 799, 800, 800, 800, 800, 800, 800, 
+    800, 800, 800, 800, 82, 82, 82, 82, 82, 82, 82, 801, 801, 801, 801, 82, 
+    82, 82, 82, 802, 802, 802, 802, 802, 802, 802, 803, 803, 803, 803, 803, 
+    803, 803, 803, 803, 82, 82, 82, 82, 82, 82, 82, 804, 804, 804, 804, 804, 
+    804, 804, 804, 804, 804, 804, 82, 82, 82, 82, 82, 805, 805, 805, 805, 
+    805, 805, 805, 805, 805, 805, 805, 82, 82, 82, 82, 82, 82, 82, 806, 806, 
+    806, 806, 806, 806, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 
+    807, 807, 807, 807, 807, 82, 808, 809, 808, 810, 810, 810, 810, 810, 810, 
+    810, 810, 810, 810, 810, 810, 810, 809, 809, 809, 809, 809, 809, 809, 
+    809, 809, 809, 809, 809, 809, 809, 811, 812, 812, 813, 813, 813, 813, 
+    813, 82, 82, 82, 82, 814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 
+    814, 814, 814, 814, 814, 814, 814, 814, 814, 814, 815, 815, 815, 815, 
+    815, 815, 815, 815, 815, 815, 82, 82, 82, 82, 82, 82, 82, 811, 816, 816, 
+    817, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 818, 
+    817, 817, 817, 816, 816, 816, 816, 817, 817, 819, 820, 821, 821, 822, 
+    823, 823, 823, 823, 82, 82, 82, 82, 82, 82, 824, 824, 824, 824, 824, 824, 
+    824, 824, 824, 82, 82, 82, 82, 82, 82, 82, 825, 825, 825, 825, 825, 825, 
+    825, 825, 825, 825, 82, 82, 82, 82, 82, 82, 826, 826, 826, 827, 827, 827, 
+    827, 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, 
+    827, 827, 827, 828, 828, 828, 828, 828, 829, 828, 828, 828, 828, 828, 
+    828, 830, 830, 82, 831, 831, 831, 831, 831, 831, 831, 831, 831, 831, 832, 
+    832, 832, 832, 82, 82, 82, 82, 833, 833, 833, 833, 833, 833, 833, 833, 
+    833, 833, 833, 834, 835, 836, 833, 82, 837, 837, 838, 839, 839, 839, 839, 
+    839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 838, 838, 
+    838, 837, 837, 837, 837, 837, 837, 837, 837, 837, 838, 840, 839, 839, 
+    839, 839, 841, 841, 842, 841, 842, 843, 837, 837, 842, 82, 82, 844, 844, 
+    844, 844, 844, 844, 844, 844, 844, 844, 839, 845, 839, 841, 841, 841, 82, 
+    846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 
+    846, 846, 846, 846, 846, 846, 82, 82, 82, 847, 847, 847, 847, 847, 847, 
+    847, 847, 847, 847, 82, 847, 847, 847, 847, 847, 847, 847, 847, 847, 848, 
+    848, 848, 849, 849, 849, 848, 848, 849, 850, 851, 849, 852, 852, 853, 
+    852, 852, 853, 849, 82, 854, 854, 854, 854, 854, 854, 854, 82, 854, 82, 
+    854, 854, 854, 854, 82, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 
+    854, 854, 854, 854, 854, 82, 854, 854, 855, 82, 82, 82, 82, 82, 82, 856, 
+    856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 
+    857, 858, 858, 858, 857, 857, 857, 857, 857, 857, 859, 860, 82, 82, 82, 
+    82, 82, 861, 861, 861, 861, 861, 861, 861, 861, 861, 861, 82, 82, 82, 82, 
+    82, 82, 862, 862, 863, 863, 82, 864, 864, 864, 864, 864, 864, 864, 864, 
+    82, 82, 864, 864, 82, 82, 864, 864, 864, 864, 864, 864, 864, 864, 864, 
+    864, 864, 864, 864, 864, 82, 864, 864, 864, 864, 864, 864, 864, 82, 864, 
+    864, 82, 864, 864, 864, 864, 864, 82, 82, 865, 864, 863, 863, 862, 863, 
+    863, 863, 863, 82, 82, 863, 863, 82, 82, 863, 863, 866, 82, 82, 864, 82, 
+    82, 82, 82, 82, 82, 863, 82, 82, 82, 82, 82, 864, 864, 864, 864, 864, 
+    863, 863, 82, 82, 867, 867, 867, 867, 867, 867, 867, 82, 82, 82, 868, 
+    868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 869, 869, 
+    869, 870, 870, 870, 870, 870, 870, 870, 870, 869, 869, 871, 870, 870, 
+    869, 872, 868, 868, 868, 868, 873, 873, 873, 873, 874, 875, 875, 875, 
+    875, 875, 875, 875, 875, 875, 875, 82, 873, 82, 874, 82, 82, 876, 876, 
+    876, 876, 876, 876, 876, 876, 877, 877, 877, 878, 878, 878, 878, 878, 
+    878, 877, 878, 877, 877, 877, 877, 878, 878, 877, 879, 880, 876, 876, 
+    881, 876, 882, 882, 882, 882, 882, 882, 882, 882, 882, 882, 82, 82, 82, 
+    82, 82, 82, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 
+    883, 883, 883, 884, 884, 884, 885, 885, 885, 885, 82, 82, 884, 884, 884, 
+    884, 885, 885, 884, 886, 887, 888, 889, 889, 890, 890, 891, 891, 891, 
+    889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 889, 
+    889, 883, 883, 883, 883, 885, 885, 82, 82, 892, 892, 892, 892, 892, 892, 
+    892, 892, 893, 893, 893, 894, 894, 894, 894, 894, 894, 894, 894, 893, 
+    893, 894, 893, 895, 894, 896, 896, 897, 892, 82, 82, 82, 898, 898, 898, 
+    898, 898, 898, 898, 898, 898, 898, 82, 82, 82, 82, 82, 82, 899, 899, 899, 
+    899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 82, 82, 82, 900, 900, 
+    900, 900, 900, 900, 900, 900, 900, 900, 900, 901, 902, 901, 902, 902, 
+    901, 901, 901, 901, 901, 901, 903, 904, 905, 905, 905, 905, 905, 905, 
+    905, 905, 905, 905, 82, 82, 82, 82, 82, 82, 906, 906, 906, 906, 906, 906, 
+    906, 906, 906, 906, 82, 82, 82, 907, 907, 907, 908, 908, 907, 907, 907, 
+    907, 908, 907, 907, 907, 907, 909, 82, 82, 82, 82, 910, 910, 910, 910, 
+    910, 910, 910, 910, 910, 910, 911, 911, 912, 912, 912, 913, 914, 914, 
+    914, 914, 914, 914, 914, 914, 915, 915, 915, 915, 915, 915, 915, 915, 
+    916, 916, 916, 916, 916, 916, 916, 916, 916, 916, 917, 917, 917, 917, 
+    917, 917, 917, 917, 917, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 
+    918, 919, 919, 919, 919, 919, 919, 919, 919, 919, 82, 82, 82, 82, 82, 82, 
+    82, 920, 920, 920, 920, 920, 920, 920, 920, 920, 82, 920, 920, 920, 920, 
+    920, 920, 920, 920, 920, 920, 920, 920, 920, 921, 922, 922, 922, 922, 
+    922, 922, 922, 82, 922, 922, 922, 922, 922, 922, 921, 923, 920, 924, 924, 
+    924, 924, 924, 82, 82, 925, 925, 925, 925, 925, 925, 925, 925, 925, 925, 
+    926, 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, 
+    926, 926, 926, 926, 926, 82, 82, 82, 927, 928, 929, 929, 929, 929, 929, 
+    929, 929, 929, 929, 929, 929, 929, 929, 929, 82, 82, 930, 930, 930, 930, 
+    930, 930, 930, 930, 930, 930, 930, 930, 930, 930, 82, 931, 930, 930, 930, 
+    930, 930, 930, 930, 931, 930, 930, 931, 930, 930, 82, 932, 932, 932, 932, 
+    932, 932, 932, 932, 932, 932, 82, 82, 82, 82, 82, 82, 933, 933, 933, 933, 
+    933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 933, 82, 934, 934, 934, 
+    934, 934, 82, 82, 82, 932, 932, 932, 932, 82, 82, 82, 82, 935, 935, 935, 
+    935, 935, 935, 935, 935, 936, 936, 936, 937, 937, 937, 935, 935, 935, 
+    935, 937, 935, 935, 935, 936, 937, 936, 937, 935, 935, 935, 935, 935, 
+    935, 935, 936, 937, 937, 935, 935, 935, 935, 935, 935, 935, 935, 935, 
+    935, 935, 82, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 
+    938, 938, 939, 940, 938, 938, 938, 938, 938, 938, 938, 82, 609, 82, 82, 
+    82, 82, 82, 82, 82, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 
+    941, 941, 941, 941, 941, 82, 942, 942, 942, 942, 942, 942, 942, 942, 942, 
+    942, 82, 82, 82, 82, 943, 943, 944, 944, 944, 944, 944, 944, 944, 944, 
+    944, 944, 944, 944, 944, 944, 82, 82, 945, 945, 945, 945, 945, 946, 82, 
+    82, 947, 947, 947, 947, 947, 947, 947, 947, 948, 948, 948, 948, 948, 948, 
+    948, 949, 949, 949, 950, 950, 951, 951, 951, 951, 952, 952, 952, 952, 
+    949, 951, 82, 82, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 82, 
+    954, 954, 954, 954, 954, 954, 954, 82, 947, 947, 947, 947, 947, 82, 82, 
+    82, 82, 82, 947, 947, 947, 955, 955, 955, 955, 955, 955, 955, 955, 955, 
+    955, 955, 955, 955, 82, 82, 82, 955, 956, 956, 956, 956, 956, 956, 956, 
+    956, 956, 956, 956, 956, 956, 956, 956, 956, 956, 956, 956, 956, 956, 
+    956, 82, 82, 82, 82, 82, 82, 82, 82, 957, 957, 957, 957, 958, 958, 958, 
+    958, 958, 958, 958, 958, 958, 958, 958, 958, 958, 959, 82, 82, 82, 82, 
+    82, 82, 82, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, 
+    960, 82, 82, 82, 960, 960, 960, 82, 82, 82, 82, 82, 580, 575, 82, 82, 82, 
+    82, 82, 82, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, 82, 
+    82, 82, 82, 82, 961, 961, 961, 961, 961, 82, 82, 82, 961, 82, 82, 82, 82, 
+    82, 82, 82, 961, 961, 82, 82, 962, 963, 964, 965, 499, 499, 499, 499, 82, 
+    82, 82, 82, 313, 313, 313, 313, 313, 313, 82, 82, 313, 313, 313, 313, 
+    313, 313, 313, 82, 82, 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, 
+    313, 313, 966, 966, 447, 447, 447, 313, 313, 313, 967, 966, 966, 966, 
+    966, 966, 499, 499, 499, 499, 499, 499, 499, 499, 157, 157, 157, 157, 
+    157, 157, 157, 157, 313, 313, 97, 97, 97, 97, 97, 157, 157, 313, 313, 
+    313, 313, 313, 313, 97, 97, 97, 97, 313, 313, 313, 82, 82, 82, 82, 82, 
+    82, 82, 728, 728, 968, 968, 968, 728, 82, 82, 620, 620, 82, 82, 82, 82, 
+    82, 82, 506, 506, 506, 506, 506, 506, 506, 506, 506, 506, 50, 50, 50, 50, 
+    50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 506, 506, 506, 
+    506, 506, 506, 506, 506, 506, 506, 50, 50, 50, 50, 50, 50, 50, 82, 50, 
+    50, 50, 50, 50, 50, 506, 82, 506, 506, 82, 82, 506, 82, 82, 506, 506, 82, 
+    82, 506, 506, 506, 506, 82, 506, 506, 50, 50, 82, 50, 82, 50, 50, 50, 50, 
+    50, 50, 50, 82, 50, 50, 50, 50, 50, 50, 50, 506, 506, 82, 506, 506, 506, 
+    506, 82, 82, 506, 506, 506, 506, 506, 506, 506, 506, 82, 506, 506, 506, 
+    506, 506, 506, 506, 82, 50, 50, 506, 506, 82, 506, 506, 506, 506, 82, 
+    506, 506, 506, 506, 506, 82, 506, 82, 82, 82, 506, 506, 506, 506, 506, 
+    506, 506, 82, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 82, 82, 
+    506, 969, 50, 50, 50, 50, 50, 50, 50, 50, 50, 513, 50, 50, 50, 50, 50, 
+    50, 506, 506, 506, 506, 506, 506, 506, 506, 506, 969, 50, 50, 50, 50, 50, 
+    50, 50, 50, 50, 513, 50, 50, 506, 506, 506, 506, 506, 969, 50, 50, 50, 
+    50, 50, 50, 50, 50, 50, 513, 50, 50, 50, 50, 50, 50, 506, 506, 506, 506, 
+    506, 506, 506, 506, 506, 969, 50, 513, 50, 50, 50, 50, 50, 50, 50, 50, 
+    506, 50, 82, 82, 970, 970, 970, 970, 970, 970, 970, 970, 970, 970, 971, 
+    971, 971, 971, 971, 971, 971, 971, 972, 972, 972, 972, 972, 972, 972, 
+    972, 972, 972, 972, 972, 972, 972, 972, 971, 971, 971, 971, 972, 972, 
+    972, 972, 972, 972, 972, 972, 972, 972, 971, 971, 971, 971, 971, 971, 
+    971, 971, 972, 971, 971, 971, 971, 971, 971, 972, 971, 971, 973, 973, 
+    973, 973, 974, 82, 82, 82, 82, 82, 82, 82, 972, 972, 972, 972, 972, 82, 
+    972, 972, 972, 972, 972, 972, 972, 975, 975, 975, 975, 975, 975, 975, 82, 
+    975, 975, 975, 975, 975, 975, 975, 975, 975, 82, 82, 975, 975, 975, 975, 
+    975, 975, 975, 82, 975, 975, 82, 975, 975, 975, 975, 975, 82, 82, 82, 82, 
+    82, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 976, 82, 
+    82, 977, 977, 977, 977, 977, 977, 977, 977, 977, 978, 978, 978, 978, 978, 
+    978, 978, 82, 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, 980, 980, 
+    980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 980, 
+    980, 980, 981, 981, 981, 981, 981, 981, 982, 82, 82, 82, 82, 82, 983, 
+    983, 983, 983, 983, 983, 983, 983, 983, 983, 82, 82, 82, 82, 984, 984, 
+    147, 147, 147, 147, 82, 147, 147, 147, 82, 147, 147, 82, 147, 82, 82, 
+    147, 82, 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 82, 147, 147, 
+    147, 147, 82, 147, 82, 147, 82, 82, 82, 82, 82, 82, 147, 82, 82, 82, 82, 
+    147, 82, 147, 82, 147, 82, 147, 147, 147, 82, 147, 82, 147, 82, 147, 82, 
+    147, 82, 147, 147, 147, 147, 82, 147, 82, 147, 147, 82, 147, 147, 147, 
+    147, 147, 147, 147, 147, 147, 82, 82, 82, 82, 82, 147, 147, 147, 82, 147, 
+    147, 147, 133, 133, 82, 82, 82, 82, 82, 82, 527, 527, 527, 527, 523, 527, 
+    527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 527, 
+    985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 527, 527, 
+    527, 527, 527, 527, 527, 985, 985, 527, 527, 527, 527, 527, 527, 527, 
+    527, 527, 527, 527, 527, 527, 527, 523, 527, 527, 527, 527, 527, 527, 
+    985, 985, 48, 48, 48, 516, 516, 985, 985, 985, 528, 528, 528, 528, 528, 
+    528, 313, 985, 528, 528, 41, 41, 985, 985, 985, 985, 528, 528, 528, 528, 
+    528, 528, 986, 528, 528, 986, 986, 986, 986, 986, 986, 986, 986, 986, 
+    986, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 985, 985, 985, 
+    985, 985, 985, 985, 985, 985, 987, 987, 987, 987, 987, 987, 987, 987, 
+    987, 987, 988, 586, 586, 985, 985, 985, 985, 985, 586, 586, 586, 586, 
+    985, 985, 985, 985, 586, 985, 985, 985, 985, 985, 985, 985, 586, 586, 
+    985, 985, 985, 985, 985, 985, 523, 527, 527, 527, 527, 527, 527, 527, 
+    527, 527, 527, 527, 527, 523, 523, 523, 523, 523, 523, 523, 523, 523, 
+    527, 523, 523, 523, 523, 523, 523, 527, 523, 523, 523, 523, 523, 523, 
+    523, 534, 523, 523, 523, 523, 523, 523, 527, 527, 527, 527, 527, 527, 
+    527, 527, 41, 41, 527, 527, 523, 523, 523, 523, 523, 526, 526, 523, 523, 
+    523, 523, 523, 526, 523, 523, 523, 523, 523, 523, 534, 534, 523, 523, 
+    523, 523, 523, 534, 532, 527, 527, 527, 523, 523, 527, 527, 527, 523, 
+    527, 527, 527, 523, 523, 523, 989, 989, 989, 989, 989, 523, 523, 523, 
+    523, 523, 523, 523, 527, 523, 527, 534, 534, 523, 523, 534, 534, 534, 
+    534, 534, 534, 534, 534, 534, 534, 534, 523, 523, 523, 523, 523, 523, 
+    523, 523, 523, 523, 523, 523, 523, 534, 534, 534, 534, 523, 523, 523, 
+    523, 534, 523, 534, 523, 523, 523, 534, 523, 523, 523, 523, 534, 534, 
+    534, 523, 534, 534, 534, 526, 523, 526, 523, 526, 523, 523, 523, 523, 
+    523, 534, 523, 523, 523, 523, 526, 523, 526, 526, 523, 523, 523, 523, 
+    523, 523, 523, 523, 523, 523, 527, 527, 523, 526, 526, 526, 526, 526, 
+    526, 526, 523, 523, 523, 523, 523, 523, 523, 523, 526, 526, 526, 526, 
+    526, 526, 523, 523, 523, 523, 523, 526, 526, 526, 526, 526, 526, 526, 
+    526, 526, 526, 526, 526, 41, 41, 41, 41, 527, 523, 523, 523, 523, 527, 
+    527, 527, 527, 527, 527, 532, 527, 527, 527, 527, 534, 527, 527, 527, 
+    527, 527, 532, 527, 527, 527, 527, 534, 534, 527, 527, 527, 527, 527, 41, 
+    41, 41, 41, 41, 41, 41, 41, 527, 527, 527, 527, 41, 41, 527, 523, 523, 
+    523, 523, 523, 523, 523, 523, 523, 523, 534, 534, 534, 523, 523, 523, 
+    534, 534, 534, 534, 534, 41, 41, 41, 41, 41, 41, 536, 536, 536, 990, 990, 
+    990, 41, 41, 41, 41, 523, 523, 523, 534, 523, 523, 523, 523, 523, 523, 
+    523, 523, 534, 534, 534, 523, 534, 523, 523, 523, 523, 523, 527, 527, 
+    523, 523, 523, 985, 985, 985, 985, 985, 527, 527, 527, 523, 523, 985, 
+    985, 985, 527, 527, 527, 527, 523, 523, 523, 985, 41, 41, 41, 41, 985, 
+    985, 985, 985, 41, 41, 41, 41, 41, 985, 985, 985, 41, 41, 985, 985, 985, 
+    985, 985, 985, 41, 41, 41, 41, 41, 41, 985, 985, 534, 534, 534, 534, 534, 
+    534, 534, 985, 523, 523, 523, 523, 523, 523, 534, 523, 534, 985, 985, 
+    534, 534, 534, 534, 534, 534, 534, 523, 523, 534, 534, 534, 985, 523, 
+    523, 523, 523, 985, 985, 985, 985, 523, 523, 523, 523, 523, 523, 523, 
+    985, 523, 523, 985, 985, 985, 985, 985, 985, 523, 985, 985, 985, 985, 
+    985, 985, 985, 985, 985, 985, 985, 985, 985, 82, 82, 593, 593, 593, 593, 
+    593, 593, 593, 594, 593, 593, 593, 593, 593, 594, 594, 594, 594, 594, 
+    594, 594, 594, 594, 82, 82, 82, 499, 82, 82, 82, 82, 82, 82, 499, 499, 
+    499, 499, 499, 499, 499, 499, 671, 671, 671, 671, 671, 671, 82, 82, 
 };
 
 /* decomposition data */
@@ -3874,98 +4326,98 @@ static const unsigned short decomp_data[] = {
     25429, 266, 19968, 266, 19977, 266, 36938, 266, 24038, 266, 20013, 266, 
     21491, 266, 25351, 266, 36208, 266, 25171, 266, 31105, 266, 31354, 266, 
     21512, 266, 28288, 266, 26377, 266, 26376, 266, 30003, 266, 21106, 266, 
-    21942, 770, 12308, 26412, 12309, 770, 12308, 19977, 12309, 770, 12308
-    20108, 12309, 770, 12308, 23433, 12309, 770, 12308, 28857, 12309, 770
-    12308, 25171, 12309, 770, 12308, 30423, 12309, 770, 12308, 21213, 12309
-    770, 12308, 25943, 12309, 263, 24471, 263, 21487, 256, 20029, 256, 20024
-    256, 20033, 256, 55360, 56610, 256, 20320, 256, 20398, 256, 20411, 256
-    20482, 256, 20602, 256, 20633, 256, 20711, 256, 20687, 256, 13470, 256
-    55361, 56890, 256, 20813, 256, 20820, 256, 20836, 256, 20855, 256, 55361
-    56604, 256, 13497, 256, 20839, 256, 20877, 256, 55361, 56651, 256, 20887
-    256, 20900, 256, 20172, 256, 20908, 256, 20917, 256, 55396, 56799, 256, 
-    20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062, 256, 21106, 256
-    21111, 256, 13589, 256, 21191, 256, 21193, 256, 21220, 256, 21242, 256
-    21253, 256, 21254, 256, 21271, 256, 21321, 256, 21329, 256, 21338, 256
-    21363, 256, 21373, 256, 21375, 256, 21375, 256, 21375, 256, 55362, 56876
-    256, 28784, 256, 21450, 256, 21471, 256, 55362, 57187, 256, 21483, 256
-    21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576, 256, 21608, 256, 
-    21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859, 256, 21892, 256
-    21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954, 256, 22294, 256
-    22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999, 256, 22766, 256
-    22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578, 256, 22577, 256
-    22700, 256, 55365, 56548, 256, 22770, 256, 22775, 256, 22790, 256, 22810
-    256, 22818, 256, 22882, 256, 55365, 57000, 256, 55365, 57066, 256, 23020
-    256, 23067, 256, 23079, 256, 23000, 256, 23142, 256, 14062, 256, 14076, 
-    256, 23304, 256, 23358, 256, 23358, 256, 55366, 56776, 256, 23491, 256, 
-    23512, 256, 23527, 256, 23539, 256, 55366, 57112, 256, 23551, 256, 23558
-    256, 24403, 256, 23586, 256, 14209, 256, 23648, 256, 23662, 256, 23744
-    256, 23693, 256, 55367, 56804, 256, 23875, 256, 55367, 56806, 256, 23918
-    256, 23915, 256, 23932, 256, 24033, 256, 24034, 256, 14383, 256, 24061
-    256, 24104, 256, 24125, 256, 24169, 256, 14434, 256, 55368, 56707, 256, 
-    14460, 256, 24240, 256, 24243, 256, 24246, 256, 24266, 256, 55400, 57234
-    256, 24318, 256, 55368, 57137, 256, 55368, 57137, 256, 33281, 256, 24354
-    256, 24354, 256, 14535, 256, 55372, 57016, 256, 55384, 56794, 256, 24418
-    256, 24427, 256, 14563, 256, 24474, 256, 24525, 256, 24535, 256, 24569
-    256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, 55369, 57044, 256, 
-    24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908, 256, 24954, 256
-    24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054, 256, 25074, 256
-    25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265, 256, 25300, 256
-    25424, 256, 55370, 57100, 256, 25405, 256, 25340, 256, 25448, 256, 25475
-    256, 25572, 256, 55370, 57329, 256, 25634, 256, 25541, 256, 25513, 256
-    14894, 256, 25705, 256, 25726, 256, 25757, 256, 25719, 256, 14956, 256
-    25935, 256, 25964, 256, 55372, 56330, 256, 26083, 256, 26360, 256, 26185
-    256, 15129, 256, 26257, 256, 15112, 256, 15076, 256, 20882, 256, 20885
-    256, 26368, 256, 26268, 256, 32941, 256, 17369, 256, 26391, 256, 26395
-    256, 26401, 256, 26462, 256, 26451, 256, 55372, 57283, 256, 15177, 256
-    26618, 256, 26501, 256, 26706, 256, 26757, 256, 55373, 56429, 256, 26766
-    256, 26655, 256, 26900, 256, 15261, 256, 26946, 256, 27043, 256, 27114
-    256, 27304, 256, 55373, 56995, 256, 27355, 256, 15384, 256, 27425, 256
-    55374, 56487, 256, 27476, 256, 15438, 256, 27506, 256, 27551, 256, 27578
-    256, 27579, 256, 55374, 56973, 256, 55367, 56587, 256, 55374, 57082, 256, 
-    27726, 256, 55375, 56508, 256, 27839, 256, 27853, 256, 27751, 256, 27926, 
-    256, 27966, 256, 28023, 256, 27969, 256, 28009, 256, 28024, 256, 28037
-    256, 55375, 56606, 256, 27956, 256, 28207, 256, 28270, 256, 15667, 256
-    28363, 256, 28359, 256, 55375, 57041, 256, 28153, 256, 28526, 256, 55375
-    57182, 256, 55375, 57230, 256, 28614, 256, 28729, 256, 28702, 256, 28699
-    256, 15766, 256, 28746, 256, 28797, 256, 28791, 256, 28845, 256, 55361
-    56613, 256, 28997, 256, 55376, 56931, 256, 29084, 256, 55376, 57259, 256, 
-    29224, 256, 29237, 256, 29264, 256, 55377, 56840, 256, 29312, 256, 29333
-    256, 55377, 57141, 256, 55378, 56340, 256, 29562, 256, 29579, 256, 16044
-    256, 29605, 256, 16056, 256, 16056, 256, 29767, 256, 29788, 256, 29809
-    256, 29829, 256, 29898, 256, 16155, 256, 29988, 256, 55379, 56374, 256, 
-    30014, 256, 55379, 56466, 256, 30064, 256, 55368, 56735, 256, 30224, 256
-    55379, 57249, 256, 55379, 57272, 256, 55380, 56388, 256, 16380, 256
-    16392, 256, 30452, 256, 55380, 56563, 256, 55380, 56562, 256, 55380, 
-    56601, 256, 55380, 56627, 256, 30494, 256, 30495, 256, 30495, 256, 30538
-    256, 16441, 256, 30603, 256, 16454, 256, 16534, 256, 55381, 56349, 256, 
-    30798, 256, 30860, 256, 30924, 256, 16611, 256, 55381, 56870, 256, 31062
-    256, 55381, 56986, 256, 55381, 57029, 256, 31119, 256, 31211, 256, 16687
-    256, 31296, 256, 31306, 256, 31311, 256, 55382, 56700, 256, 55382, 56999
-    256, 55382, 56999, 256, 31470, 256, 16898, 256, 55382, 57259, 256, 31686
-    256, 31689, 256, 16935, 256, 55383, 56448, 256, 31954, 256, 17056, 256
-    31976, 256, 31971, 256, 32000, 256, 55383, 57222, 256, 32099, 256, 17153
-    256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, 55384, 56872, 256, 
-    55384, 56903, 256, 17241, 256, 55384, 57049, 256, 32634, 256, 55384
-    57150, 256, 32661, 256, 32762, 256, 32773, 256, 55385, 56538, 256, 55385, 
-    56611, 256, 32864, 256, 55385, 56744, 256, 32880, 256, 55372, 57183, 256, 
-    17365, 256, 32946, 256, 33027, 256, 17419, 256, 33086, 256, 23221, 256, 
-    55385, 57255, 256, 55385, 57269, 256, 55372, 57235, 256, 55372, 57244
-    256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425, 256, 33419
-    256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469, 256, 33510
-    256, 55386, 57148, 256, 33509, 256, 33565, 256, 33635, 256, 33709, 256, 
-    33571, 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, 33738, 256, 
-    33740, 256, 33756, 256, 55387, 56374, 256, 55387, 56683, 256, 55387
-    56533, 256, 17707, 256, 34033, 256, 34035, 256, 34070, 256, 55388, 57290
-    256, 34148, 256, 55387, 57132, 256, 17757, 256, 17761, 256, 55387, 57265
-    256, 55388, 56530, 256, 17771, 256, 34384, 256, 34396, 256, 34407, 256
-    34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, 256, 34681, 256
-    34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, 256, 34817, 256
-    17913, 256, 34912, 256, 34915, 256, 55389, 56935, 256, 35031, 256, 35038
-    256, 17973, 256, 35066, 256, 13499, 256, 55390, 56494, 256, 55390, 56678
-    256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256, 35925
-    256, 55391, 56488, 256, 36011, 256, 36033, 256, 36123, 256, 36215, 256
-    55391, 57135, 256, 55362, 56324, 256, 36299, 256, 36284, 256, 36336, 256, 
-    55362, 56542, 256, 36564, 256, 36664, 256, 55393, 56786, 256, 55393, 
+    21942, 266, 37197, 770, 12308, 26412, 12309, 770, 12308, 19977, 12309
+    770, 12308, 20108, 12309, 770, 12308, 23433, 12309, 770, 12308, 28857
+    12309, 770, 12308, 25171, 12309, 770, 12308, 30423, 12309, 770, 12308
+    21213, 12309, 770, 12308, 25943, 12309, 263, 24471, 263, 21487, 256
+    20029, 256, 20024, 256, 20033, 256, 55360, 56610, 256, 20320, 256, 20398
+    256, 20411, 256, 20482, 256, 20602, 256, 20633, 256, 20711, 256, 20687
+    256, 13470, 256, 55361, 56890, 256, 20813, 256, 20820, 256, 20836, 256
+    20855, 256, 55361, 56604, 256, 13497, 256, 20839, 256, 20877, 256, 55361
+    56651, 256, 20887, 256, 20900, 256, 20172, 256, 20908, 256, 20917, 256, 
+    55396, 56799, 256, 20981, 256, 20995, 256, 13535, 256, 21051, 256, 21062
+    256, 21106, 256, 21111, 256, 13589, 256, 21191, 256, 21193, 256, 21220
+    256, 21242, 256, 21253, 256, 21254, 256, 21271, 256, 21321, 256, 21329
+    256, 21338, 256, 21363, 256, 21373, 256, 21375, 256, 21375, 256, 21375
+    256, 55362, 56876, 256, 28784, 256, 21450, 256, 21471, 256, 55362, 57187
+    256, 21483, 256, 21489, 256, 21510, 256, 21662, 256, 21560, 256, 21576, 
+    256, 21608, 256, 21666, 256, 21750, 256, 21776, 256, 21843, 256, 21859
+    256, 21892, 256, 21892, 256, 21913, 256, 21931, 256, 21939, 256, 21954
+    256, 22294, 256, 22022, 256, 22295, 256, 22097, 256, 22132, 256, 20999
+    256, 22766, 256, 22478, 256, 22516, 256, 22541, 256, 22411, 256, 22578
+    256, 22577, 256, 22700, 256, 55365, 56548, 256, 22770, 256, 22775, 256
+    22790, 256, 22810, 256, 22818, 256, 22882, 256, 55365, 57000, 256, 55365
+    57066, 256, 23020, 256, 23067, 256, 23079, 256, 23000, 256, 23142, 256, 
+    14062, 256, 14076, 256, 23304, 256, 23358, 256, 23358, 256, 55366, 56776, 
+    256, 23491, 256, 23512, 256, 23527, 256, 23539, 256, 55366, 57112, 256
+    23551, 256, 23558, 256, 24403, 256, 23586, 256, 14209, 256, 23648, 256
+    23662, 256, 23744, 256, 23693, 256, 55367, 56804, 256, 23875, 256, 55367
+    56806, 256, 23918, 256, 23915, 256, 23932, 256, 24033, 256, 24034, 256
+    14383, 256, 24061, 256, 24104, 256, 24125, 256, 24169, 256, 14434, 256, 
+    55368, 56707, 256, 14460, 256, 24240, 256, 24243, 256, 24246, 256, 24266
+    256, 55400, 57234, 256, 24318, 256, 55368, 57137, 256, 55368, 57137, 256
+    33281, 256, 24354, 256, 24354, 256, 14535, 256, 55372, 57016, 256, 55384
+    56794, 256, 24418, 256, 24427, 256, 14563, 256, 24474, 256, 24525, 256
+    24535, 256, 24569, 256, 24705, 256, 14650, 256, 14620, 256, 24724, 256, 
+    55369, 57044, 256, 24775, 256, 24904, 256, 24908, 256, 24910, 256, 24908
+    256, 24954, 256, 24974, 256, 25010, 256, 24996, 256, 25007, 256, 25054
+    256, 25074, 256, 25078, 256, 25104, 256, 25115, 256, 25181, 256, 25265
+    256, 25300, 256, 25424, 256, 55370, 57100, 256, 25405, 256, 25340, 256
+    25448, 256, 25475, 256, 25572, 256, 55370, 57329, 256, 25634, 256, 25541
+    256, 25513, 256, 14894, 256, 25705, 256, 25726, 256, 25757, 256, 25719
+    256, 14956, 256, 25935, 256, 25964, 256, 55372, 56330, 256, 26083, 256
+    26360, 256, 26185, 256, 15129, 256, 26257, 256, 15112, 256, 15076, 256
+    20882, 256, 20885, 256, 26368, 256, 26268, 256, 32941, 256, 17369, 256
+    26391, 256, 26395, 256, 26401, 256, 26462, 256, 26451, 256, 55372, 57283
+    256, 15177, 256, 26618, 256, 26501, 256, 26706, 256, 26757, 256, 55373
+    56429, 256, 26766, 256, 26655, 256, 26900, 256, 15261, 256, 26946, 256
+    27043, 256, 27114, 256, 27304, 256, 55373, 56995, 256, 27355, 256, 15384
+    256, 27425, 256, 55374, 56487, 256, 27476, 256, 15438, 256, 27506, 256
+    27551, 256, 27578, 256, 27579, 256, 55374, 56973, 256, 55367, 56587, 256, 
+    55374, 57082, 256, 27726, 256, 55375, 56508, 256, 27839, 256, 27853, 256, 
+    27751, 256, 27926, 256, 27966, 256, 28023, 256, 27969, 256, 28009, 256
+    28024, 256, 28037, 256, 55375, 56606, 256, 27956, 256, 28207, 256, 28270
+    256, 15667, 256, 28363, 256, 28359, 256, 55375, 57041, 256, 28153, 256
+    28526, 256, 55375, 57182, 256, 55375, 57230, 256, 28614, 256, 28729, 256
+    28702, 256, 28699, 256, 15766, 256, 28746, 256, 28797, 256, 28791, 256
+    28845, 256, 55361, 56613, 256, 28997, 256, 55376, 56931, 256, 29084, 256, 
+    55376, 57259, 256, 29224, 256, 29237, 256, 29264, 256, 55377, 56840, 256
+    29312, 256, 29333, 256, 55377, 57141, 256, 55378, 56340, 256, 29562, 256
+    29579, 256, 16044, 256, 29605, 256, 16056, 256, 16056, 256, 29767, 256
+    29788, 256, 29809, 256, 29829, 256, 29898, 256, 16155, 256, 29988, 256, 
+    55379, 56374, 256, 30014, 256, 55379, 56466, 256, 30064, 256, 55368
+    56735, 256, 30224, 256, 55379, 57249, 256, 55379, 57272, 256, 55380
+    56388, 256, 16380, 256, 16392, 256, 30452, 256, 55380, 56563, 256, 55380, 
+    56562, 256, 55380, 56601, 256, 55380, 56627, 256, 30494, 256, 30495, 256
+    30495, 256, 30538, 256, 16441, 256, 30603, 256, 16454, 256, 16534, 256, 
+    55381, 56349, 256, 30798, 256, 30860, 256, 30924, 256, 16611, 256, 55381
+    56870, 256, 31062, 256, 55381, 56986, 256, 55381, 57029, 256, 31119, 256
+    31211, 256, 16687, 256, 31296, 256, 31306, 256, 31311, 256, 55382, 56700
+    256, 55382, 56999, 256, 55382, 56999, 256, 31470, 256, 16898, 256, 55382
+    57259, 256, 31686, 256, 31689, 256, 16935, 256, 55383, 56448, 256, 31954
+    256, 17056, 256, 31976, 256, 31971, 256, 32000, 256, 55383, 57222, 256
+    32099, 256, 17153, 256, 32199, 256, 32258, 256, 32325, 256, 17204, 256, 
+    55384, 56872, 256, 55384, 56903, 256, 17241, 256, 55384, 57049, 256
+    32634, 256, 55384, 57150, 256, 32661, 256, 32762, 256, 32773, 256, 55385, 
+    56538, 256, 55385, 56611, 256, 32864, 256, 55385, 56744, 256, 32880, 256, 
+    55372, 57183, 256, 17365, 256, 32946, 256, 33027, 256, 17419, 256, 33086, 
+    256, 23221, 256, 55385, 57255, 256, 55385, 57269, 256, 55372, 57235, 256
+    55372, 57244, 256, 33281, 256, 33284, 256, 36766, 256, 17515, 256, 33425
+    256, 33419, 256, 33437, 256, 21171, 256, 33457, 256, 33459, 256, 33469
+    256, 33510, 256, 55386, 57148, 256, 33509, 256, 33565, 256, 33635, 256, 
+    33709, 256, 33571, 256, 33725, 256, 33767, 256, 33879, 256, 33619, 256, 
+    33738, 256, 33740, 256, 33756, 256, 55387, 56374, 256, 55387, 56683, 256
+    55387, 56533, 256, 17707, 256, 34033, 256, 34035, 256, 34070, 256, 55388
+    57290, 256, 34148, 256, 55387, 57132, 256, 17757, 256, 17761, 256, 55387
+    57265, 256, 55388, 56530, 256, 17771, 256, 34384, 256, 34396, 256, 34407
+    256, 34409, 256, 34473, 256, 34440, 256, 34574, 256, 34530, 256, 34681
+    256, 34600, 256, 34667, 256, 34694, 256, 17879, 256, 34785, 256, 34817
+    256, 17913, 256, 34912, 256, 34915, 256, 55389, 56935, 256, 35031, 256
+    35038, 256, 17973, 256, 35066, 256, 13499, 256, 55390, 56494, 256, 55390
+    56678, 256, 18110, 256, 18119, 256, 35488, 256, 35565, 256, 35722, 256
+    35925, 256, 55391, 56488, 256, 36011, 256, 36033, 256, 36123, 256, 36215
+    256, 55391, 57135, 256, 55362, 56324, 256, 36299, 256, 36284, 256, 36336, 
+    256, 55362, 56542, 256, 36564, 256, 36664, 256, 55393, 56786, 256, 55393, 
     56813, 256, 37012, 256, 37105, 256, 37137, 256, 55393, 57134, 256, 37147, 
     256, 37432, 256, 37591, 256, 37592, 256, 37500, 256, 37881, 256, 37909, 
     256, 55394, 57338, 256, 38283, 256, 18837, 256, 38327, 256, 55395, 56695, 
@@ -4642,64 +5094,64 @@ static const unsigned short decomp_index2[] = {
     13103, 13105, 13107, 13109, 13111, 13113, 13115, 13117, 13119, 13121, 
     13123, 13125, 13127, 13129, 13131, 13133, 13135, 13137, 13139, 13141, 
     13143, 13145, 13147, 13149, 13151, 13153, 13155, 13157, 13159, 13161, 
-    13163, 13165, 13167, 13169, 13171, 13173, 13175, 13177, 0, 0, 0, 0, 0, 
-    13179, 13183, 13187, 13191, 13195, 13199, 13203, 13207, 13211, 0, 0, 0, 
-    0, 0, 0, 0, 13215, 13217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    13219, 13221, 13223, 13225, 13228, 13230, 13232, 13234, 13236, 13238
-    13240, 13242, 13244, 13246, 13249, 13251, 13253, 13255, 13257, 13260
-    13262, 13264, 13266, 13269, 13271, 13273, 13275, 13277, 13279, 13282
-    13284, 13286, 13288, 13290, 13292, 13294, 13296, 13298, 13300, 13302
-    13304, 13306, 13308, 13310, 13312, 13314, 13316, 13318, 13320, 13322
-    13324, 13326, 13328, 13331, 13333, 13335, 13337, 13340, 13342, 13344
-    13346, 13348, 13350, 13352, 13354, 13356, 13358, 13360, 13362, 13364
-    13366, 13368, 13370, 13372, 13374, 13376, 13378, 13380, 13382, 13384
-    13386, 13388, 13390, 13392, 13394, 13396, 13398, 13400, 13402, 13404
-    13407, 13409, 13411, 13413, 13415, 13417, 13419, 13422, 13425, 13427
-    13429, 13431, 13433, 13435, 13437, 13439, 13441, 13443, 13445, 13448
-    13450, 13452, 13454, 13456, 13459, 13461, 13463, 13465, 13467, 13469
-    13471, 13473, 13475, 13477, 13480, 13482, 13485, 13487, 13489, 13491
-    13493, 13495, 13497, 13499, 13501, 13503, 13505, 13507, 13510, 13512
-    13514, 13516, 13518, 13520, 13523, 13525, 13528, 13531, 13533, 13535
-    13537, 13539, 13542, 13545, 13547, 13549, 13551, 13553, 13555, 13557
-    13559, 13561, 13563, 13565, 13567, 13570, 13572, 13574, 13576, 13578
-    13580, 13582, 13584, 13586, 13588, 13590, 13592, 13594, 13596, 13598
-    13600, 13602, 13604, 13606, 13608, 13611, 13613, 13615, 13617, 13619
-    13621, 13624, 13626, 13628, 13630, 13632, 13634, 13636, 13638, 13640
-    13642, 13644, 13646, 13649, 13651, 13653, 13655, 13657, 13659, 13661
-    13663, 13665, 13667, 13669, 13671, 13673, 13675, 13677, 13679, 13681
-    13683, 13685, 13688, 13690, 13692, 13694, 13696, 13698, 13701, 13703
-    13705, 13707, 13709, 13711, 13713, 13715, 13717, 13720, 13722, 13724
-    13726, 13729, 13731, 13733, 13735, 13737, 13739, 13741, 13744, 13747
-    13750, 13752, 13755, 13757, 13759, 13761, 13763, 13765, 13767, 13769
-    13771, 13773, 13775, 13778, 13780, 13782, 13784, 13786, 13788, 13790
-    13793, 13795, 13797, 13800, 13803, 13805, 13807, 13809, 13811, 13813
-    13815, 13817, 13819, 13821, 13824, 13826, 13829, 13831, 13834, 13836
-    13838, 13840, 13843, 13845, 13847, 13850, 13853, 13855, 13857, 13859
-    13861, 13863, 13865, 13867, 13869, 13871, 13873, 13875, 13877, 13879
-    13882, 13884, 13887, 13889, 13892, 13894, 13897, 13900, 13903, 13905
-    13907, 13909, 13912, 13915, 13918, 13921, 13923, 13925, 13927, 13929
-    13931, 13933, 13935, 13937, 13940, 13942, 13944, 13946, 13948, 13951
-    13953, 13956, 13959, 13961, 13963, 13965, 13967, 13969, 13971, 13974
-    13977, 13980, 13982, 13984, 13987, 13989, 13991, 13993, 13996, 13998
-    14000, 14002, 14004, 14006, 14009, 14011, 14013, 14015, 14017, 14019
-    14021, 14024, 14027, 14029, 14032, 14034, 14037, 14039, 14041, 14043
-    14046, 14049, 14051, 14054, 14056, 14059, 14061, 14063, 14065, 14067
-    14069, 14071, 14074, 14077, 14080, 14083, 14085, 14087, 14089, 14091
-    14093, 14095, 14097, 14099, 14101, 14103, 14105, 14107, 14110, 14112
-    14114, 14116, 14118, 14120, 14122, 14124, 14126, 14128, 14130, 14132
-    14134, 14137, 14140, 14143, 14145, 14147, 14149, 14151, 14154, 14156
-    14159, 14161, 14163, 14166, 14169, 14171, 14173, 14175, 14177, 14179
-    14181, 14183, 14185, 14187, 14189, 14191, 14193, 14195, 14197, 14199
-    14201, 14203, 14205, 14207, 14210, 14212, 14214, 14216, 14218, 14220
-    14223, 14226, 14228, 14230, 14232, 14234, 14236, 14238, 14241, 14243
-    14245, 14247, 14249, 14252, 14255, 14257, 14259, 14261, 14264, 14266
-    14268, 14271, 14274, 14276, 14278, 14280, 14283, 14285, 14287, 14289
-    14291, 14293, 14295, 14297, 14300, 14302, 14304, 14306, 14309, 14311
-    14313, 14315, 14317, 14320, 14323, 14325, 14327, 14329, 14332, 14334
-    14337, 14339, 14341, 14343, 14346, 14348, 14350, 14352, 14354, 14356
-    14358, 14360, 14363, 14365, 14367, 14369, 14371, 14373, 14375, 14378
-    14380, 14383, 14386, 14389, 14391, 14393, 14395, 14397, 14399, 14401
-    14403, 14405, 0, 0, 
+    13163, 13165, 13167, 13169, 13171, 13173, 13175, 13177, 13179, 0, 0, 0, 
+    0, 13181, 13185, 13189, 13193, 13197, 13201, 13205, 13209, 13213, 0, 0, 
+    0, 0, 0, 0, 0, 13217, 13219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    13221, 13223, 13225, 13227, 13230, 13232, 13234, 13236, 13238, 13240
+    13242, 13244, 13246, 13248, 13251, 13253, 13255, 13257, 13259, 13262
+    13264, 13266, 13268, 13271, 13273, 13275, 13277, 13279, 13281, 13284
+    13286, 13288, 13290, 13292, 13294, 13296, 13298, 13300, 13302, 13304
+    13306, 13308, 13310, 13312, 13314, 13316, 13318, 13320, 13322, 13324
+    13326, 13328, 13330, 13333, 13335, 13337, 13339, 13342, 13344, 13346
+    13348, 13350, 13352, 13354, 13356, 13358, 13360, 13362, 13364, 13366
+    13368, 13370, 13372, 13374, 13376, 13378, 13380, 13382, 13384, 13386
+    13388, 13390, 13392, 13394, 13396, 13398, 13400, 13402, 13404, 13406
+    13409, 13411, 13413, 13415, 13417, 13419, 13421, 13424, 13427, 13429
+    13431, 13433, 13435, 13437, 13439, 13441, 13443, 13445, 13447, 13450
+    13452, 13454, 13456, 13458, 13461, 13463, 13465, 13467, 13469, 13471
+    13473, 13475, 13477, 13479, 13482, 13484, 13487, 13489, 13491, 13493
+    13495, 13497, 13499, 13501, 13503, 13505, 13507, 13509, 13512, 13514
+    13516, 13518, 13520, 13522, 13525, 13527, 13530, 13533, 13535, 13537
+    13539, 13541, 13544, 13547, 13549, 13551, 13553, 13555, 13557, 13559
+    13561, 13563, 13565, 13567, 13569, 13572, 13574, 13576, 13578, 13580
+    13582, 13584, 13586, 13588, 13590, 13592, 13594, 13596, 13598, 13600
+    13602, 13604, 13606, 13608, 13610, 13613, 13615, 13617, 13619, 13621
+    13623, 13626, 13628, 13630, 13632, 13634, 13636, 13638, 13640, 13642
+    13644, 13646, 13648, 13651, 13653, 13655, 13657, 13659, 13661, 13663
+    13665, 13667, 13669, 13671, 13673, 13675, 13677, 13679, 13681, 13683
+    13685, 13687, 13690, 13692, 13694, 13696, 13698, 13700, 13703, 13705
+    13707, 13709, 13711, 13713, 13715, 13717, 13719, 13722, 13724, 13726
+    13728, 13731, 13733, 13735, 13737, 13739, 13741, 13743, 13746, 13749
+    13752, 13754, 13757, 13759, 13761, 13763, 13765, 13767, 13769, 13771
+    13773, 13775, 13777, 13780, 13782, 13784, 13786, 13788, 13790, 13792
+    13795, 13797, 13799, 13802, 13805, 13807, 13809, 13811, 13813, 13815
+    13817, 13819, 13821, 13823, 13826, 13828, 13831, 13833, 13836, 13838
+    13840, 13842, 13845, 13847, 13849, 13852, 13855, 13857, 13859, 13861
+    13863, 13865, 13867, 13869, 13871, 13873, 13875, 13877, 13879, 13881
+    13884, 13886, 13889, 13891, 13894, 13896, 13899, 13902, 13905, 13907
+    13909, 13911, 13914, 13917, 13920, 13923, 13925, 13927, 13929, 13931
+    13933, 13935, 13937, 13939, 13942, 13944, 13946, 13948, 13950, 13953
+    13955, 13958, 13961, 13963, 13965, 13967, 13969, 13971, 13973, 13976
+    13979, 13982, 13984, 13986, 13989, 13991, 13993, 13995, 13998, 14000
+    14002, 14004, 14006, 14008, 14011, 14013, 14015, 14017, 14019, 14021
+    14023, 14026, 14029, 14031, 14034, 14036, 14039, 14041, 14043, 14045
+    14048, 14051, 14053, 14056, 14058, 14061, 14063, 14065, 14067, 14069
+    14071, 14073, 14076, 14079, 14082, 14085, 14087, 14089, 14091, 14093
+    14095, 14097, 14099, 14101, 14103, 14105, 14107, 14109, 14112, 14114
+    14116, 14118, 14120, 14122, 14124, 14126, 14128, 14130, 14132, 14134
+    14136, 14139, 14142, 14145, 14147, 14149, 14151, 14153, 14156, 14158
+    14161, 14163, 14165, 14168, 14171, 14173, 14175, 14177, 14179, 14181
+    14183, 14185, 14187, 14189, 14191, 14193, 14195, 14197, 14199, 14201
+    14203, 14205, 14207, 14209, 14212, 14214, 14216, 14218, 14220, 14222
+    14225, 14228, 14230, 14232, 14234, 14236, 14238, 14240, 14243, 14245
+    14247, 14249, 14251, 14254, 14257, 14259, 14261, 14263, 14266, 14268
+    14270, 14273, 14276, 14278, 14280, 14282, 14285, 14287, 14289, 14291
+    14293, 14295, 14297, 14299, 14302, 14304, 14306, 14308, 14311, 14313
+    14315, 14317, 14319, 14322, 14325, 14327, 14329, 14331, 14334, 14336
+    14339, 14341, 14343, 14345, 14348, 14350, 14352, 14354, 14356, 14358
+    14360, 14362, 14365, 14367, 14369, 14371, 14373, 14375, 14377, 14380
+    14382, 14385, 14388, 14391, 14393, 14395, 14397, 14399, 14401, 14403
+    14405, 14407, 0, 0, 
 };
 
 /* NFC pairs */
index 0cb99f0..a4d118b 100644 (file)
@@ -182,8 +182,8 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE
        case 0x17: return hb_in_range (ch, 0x17B4u, 0x17B5u);
        case 0x18: return hb_in_range (ch, 0x180Bu, 0x180Eu);
        case 0x20: return hb_in_ranges (ch, 0x200Bu, 0x200Fu,
-                                                           0x202Au, 0x202Eu,
-                                                           0x2060u, 0x206Fu);
+                                           0x202Au, 0x202Eu,
+                                           0x2060u, 0x206Fu);
        case 0xFE: return hb_in_range (ch, 0xFE00u, 0xFE0Fu) || ch == 0xFEFFu;
        case 0xFF: return hb_in_range (ch, 0xFFF0u, 0xFFF8u);
        default: return false;
index 6a15cb0..2657f48 100644 (file)
@@ -449,33 +449,18 @@ HB_EXTERN hb_script_t
 hb_unicode_script (hb_unicode_funcs_t *ufuncs,
                   hb_codepoint_t unicode);
 
-/**
- * hb_unicode_compose:
- *
- * Since: 0.9.2
- **/
 HB_EXTERN hb_bool_t
 hb_unicode_compose (hb_unicode_funcs_t *ufuncs,
                    hb_codepoint_t      a,
                    hb_codepoint_t      b,
                    hb_codepoint_t     *ab);
 
-/**
- * hb_unicode_decompose:
- *
- * Since: 0.9.2
- **/
 HB_EXTERN hb_bool_t
 hb_unicode_decompose (hb_unicode_funcs_t *ufuncs,
                      hb_codepoint_t      ab,
                      hb_codepoint_t     *a,
                      hb_codepoint_t     *b);
 
-/**
- * hb_unicode_decompose_compatibility:
- *
- * Since: 0.9.2
- **/
 HB_EXTERN unsigned int
 hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs,
                                    hb_codepoint_t      u,
index c90db6b..78e552e 100644 (file)
@@ -37,10 +37,10 @@ HB_BEGIN_DECLS
 
 
 #define HB_VERSION_MAJOR 1
-#define HB_VERSION_MINOR 2
-#define HB_VERSION_MICRO 7
+#define HB_VERSION_MINOR 3
+#define HB_VERSION_MICRO 0
 
-#define HB_VERSION_STRING "1.2.7"
+#define HB_VERSION_STRING "1.3.0"
 
 #define HB_VERSION_ATLEAST(major,minor,micro) \
        ((major)*10000+(minor)*100+(micro) <= \
diff --git a/test/shaping/fonts/sha1sum/6ff0fbead4462d9f229167b4e6839eceb8465058.ttf b/test/shaping/fonts/sha1sum/6ff0fbead4462d9f229167b4e6839eceb8465058.ttf
new file mode 100644 (file)
index 0000000..67be525
Binary files /dev/null and b/test/shaping/fonts/sha1sum/6ff0fbead4462d9f229167b4e6839eceb8465058.ttf differ
index 747699b..7473982 100644 (file)
@@ -7,7 +7,43 @@ from itertools import *
 diff_symbols = "-+=*&^%$#@!~/"
 diff_colors = ['red', 'green', 'blue']
 
-if sys.version_info[0] >= 3:
+try:
+       unichr = unichr
+
+       if sys.maxunicode < 0x10FFFF:
+               # workarounds for Python 2 "narrow" builds with UCS2-only support.
+
+               _narrow_unichr = unichr
+
+               def unichr(i):
+                       """
+                       Return the unicode character whose Unicode code is the integer 'i'.
+                       The valid range is 0 to 0x10FFFF inclusive.
+
+                       >>> _narrow_unichr(0xFFFF + 1)
+                       Traceback (most recent call last):
+                         File "<stdin>", line 1, in ?
+                       ValueError: unichr() arg not in range(0x10000) (narrow Python build)
+                       >>> unichr(0xFFFF + 1) == u'\U00010000'
+                       True
+                       >>> unichr(1114111) == u'\U0010FFFF'
+                       True
+                       >>> unichr(0x10FFFF + 1)
+                       Traceback (most recent call last):
+                         File "<stdin>", line 1, in ?
+                       ValueError: unichr() arg not in range(0x110000)
+                       """
+                       try:
+                               return _narrow_unichr(i)
+                       except ValueError:
+                               try:
+                                       padded_hex_str = hex(i)[2:].zfill(8)
+                                       escape_str = "\\U" + padded_hex_str
+                                       return escape_str.decode("unicode-escape")
+                               except UnicodeDecodeError:
+                                       raise ValueError('unichr() arg not in range(0x110000)')
+
+except NameError:
        unichr = chr
 
 class ColorFormatter:
index e35259c..bfce117 100644 (file)
@@ -1,3 +1,4 @@
 fonts/sha1sum/fbb6c84c9e1fe0c39e152fbe845e51fd81f6748e.ttf::U+1B1B,U+1B44,U+1B13,U+1B3E:[gid3=0+990|gid7=0+2473|gid5=0@-293,-400+0]
 fonts/sha1sum/4cce528e99f600ed9c25a2b69e32eb94a03b4ae8.ttf::U+1A48,U+1A58,U+1A25,U+1A48,U+1A58,U+1A25,U+1A6E,U+1A63:[uni1A48=0+1212|uni1A25=0+1912|uni1A58=0+0|uni1A48=3+1212|uni1A6E=3+0|uni1A25=3+1912|uni1A58=3+0|uni1A63=3+1212]
 fonts/sha1sum/f518eb6f6b5eec2946c9fbbbde44e45d46f5e2ac.ttf::U+1A48,U+1A58,U+1A25,U+1A48,U+1A58,U+1A25,U+1A6E,U+1A63:[uni1A48=0+1212|uni1A25=0+1912|uni1A58=0+0|uni1A48=3+1212|uni1A6E=3+1211|uni1A25=3+1912|uni1A58=3+0|uni1A63=3+1212]
+fonts/sha1sum/6ff0fbead4462d9f229167b4e6839eceb8465058.ttf:--font-funcs=ot:U+11103,U+11128:[gid1=0+837|gid2=0+0]
diff --git a/test/shaping/texts/in-tree/shaper-indic/south-east-asian/script-javanese/misc.txt b/test/shaping/texts/in-tree/shaper-indic/south-east-asian/script-javanese/misc.txt
new file mode 100644 (file)
index 0000000..16c3d9c
--- /dev/null
@@ -0,0 +1,54 @@
+ꦥꦺ
+ꦟ꧀ꦢꦿ
+ꦥꦺꦴꦂꦠꦸꦒꦭ꧀
+꧋
+​꧅
+꧑꧐꧇
+꧒꧐꧐꧔
+꧑꧘꧘꧕꧇
+ꦥꦤꦶꦠꦿ꧇
+ꦏꦠꦿꦁꦔꦤ꧀
+꧅꧉ꦟ꧀ꦢꦿ꧉꧅
+ꦥꦺꦔꦼꦠ꧀ꦠꦤ꧀
+ꦄꦒꦸꦱ꧀ꦠꦸꦱ꧀꧇
+ꦮꦸꦭꦤ꧀ꦗꦤꦸꦮꦫꦶ
+ꦠꦸꦮꦤ꧀​ꦯꦶꦏꦺꦕꦶ
+ꦲꦶꦁ​ꦱꦸꦂꦪ​ꦏꦥꦶꦁ꧇
+ꦯꦺꦟꦦꦡꦶ​ꦲꦶꦁ​ꦔꦭꦓ꧈
+ꦲꦸꦠꦮꦶ​ꦯꦸꦂꦪ​ꦏꦥꦶꦁ꧇
+ꦥꦩꦼꦁꦏꦸꦤꦶꦫꦺꦁ​ꦨꦸꦮꦤ꧈
+ꦩꦁꦏꦾ​ꦲꦶꦁ​ꦔꦪꦸꦓꦾꦏꦂꦡ꧈
+ꦠꦤ꧀ꦧꦁꦏꦶꦠ꧀ꦲꦔꦸꦕꦥ꧀ꦥꦼꦤ꧈
+ꦠꦸꦮꦤ꧀​ꦈꦤ꧀​ꦕꦸꦤ꧀​ꦲꦺꦴꦏ꧀
+ꦲꦢꦶꦤꦶꦁꦔꦿꦠ꧀ꦏꦿꦡꦺꦴꦤ꧀ꦲꦗꦶ꧈
+ꦥꦔꦿꦺꦃꦲꦶꦁꦩꦱ꧀ꦗꦶꦢ꧀ꦱꦭꦶꦏꦶꦤ꧀
+ꦠꦼꦤ꧀ꦠꦽꦩ꧀ꦥꦿꦢꦱꦶꦃ​ꦒꦼꦁꦲꦭꦶꦠ꧀
+ꦲꦶꦁꦏꦁ​ꦲꦁꦒꦫꦥ꧀​ꦫꦢꦺꦤ꧀​ꦯꦸꦰꦺꦗ
+ꦫꦢꦺꦤ꧀ꦲꦗꦶꦩ꦳ꦸꦃꦏ꦳ꦩ꦳ꦢ꧀‌ꦔꦢ꧀ꦤꦤ꧀
+ꦮꦸꦭꦤ꧀ꦗꦸꦩꦢꦶꦭꦮꦭ꧀ꦠꦲꦸꦤ꧀ꦗꦶꦩ꧀ꦩꦮꦭ꧀
+ꦑꦭꦶꦦꦡꦸꦭ꧀ꦭꦃ​ꦲꦶꦁꦏꦁ​ꦗꦸꦩꦼꦤꦼꦁ​ꦏꦥꦶꦁ
+ꦠꦤ꧀ꦝꦶꦁꦔꦤ꧀ꦤꦶꦥꦸꦤ꧀ꦱꦮꦸꦁ​ꦧꦭ꧀ꦧꦭ꧀ꦭꦤ꧀꧈
+ꦩꦶꦤꦺꦴꦁꦏ​ꦥꦺꦔꦼꦠ꧀ꦠꦤ꧀ꦗꦸꦩꦼꦤꦼꦁ​ꦢꦊꦩ꧀ꦟꦡ꧈
+ꦏꦑꦒꦓꦔꦕꦖꦗꦙꦚꦛꦜꦝꦞꦟꦠꦡꦢꦣꦤꦥꦦꦧꦨꦩꦪꦫꦭꦮꦯꦰꦱꦲ
+ꦢꦺꦤ꧀ꦤꦶꦁ​ꦫꦢꦺꦤ꧀ꦔꦤ꧀ꦠꦺꦤ꧀ꦡꦸꦩꦼꦁꦒꦸꦁ​ꦦꦿꦮꦶꦫꦢꦶꦂꦗ꧉
+ꦲꦶꦁꦩꦡꦫꦩ꧀ꦢꦸꦏ꧀ꦫꦸꦩꦸꦲꦸꦤ꧀​ꦠꦼꦊꦁꦔꦶꦁ​ꦏꦫꦡꦺꦴꦤ꧀ꦗꦮꦶ꧈
+ꦮꦼꦝꦶ​ꦒꦩ꧀ꦥꦶꦁ​ꦏꦗꦼꦁ​ꦭꦤ꧀ꦱꦤ꧀ꦤꦺꦱ꧀ꦱꦤ꧀ꦤꦺꦱ꧀ꦱꦶꦥꦸꦤ꧀​
+ꦩꦺꦴꦁꦏ​ꦱꦫꦮꦺꦢꦶꦤꦶꦁꦫꦠ꧀​ꦢꦺꦫꦤꦿꦸꦱ꧀ꦏꦼꦤ꧀ꦲꦸꦗ꧀ꦮꦭꦤ꧀ꦤꦶꦁ꧈
+ꦩꦶꦤꦺꦴꦁꦏ​ꦮꦏꦶꦭ꧀ꦪꦪꦱꦤ꧀ꦏꦭ꧀ꦭꦺꦴꦲꦸꦱ꧀ꦠꦼ​ꦒꦸꦭ꧀ꦧꦺꦤꦏꦶꦲꦤ꧀꧇
+ꦥꦶꦤꦽꦤꦃꦏꦼꦤ꧀ꦩꦁꦒꦺꦤ꧀ꦤꦶꦥꦸꦤ꧀​ꦲꦶꦁ​ꦥꦥꦤ꧀ꦲꦶꦁꦏꦁ​ꦥꦏꦺꦴꦭꦶꦃ꧈
+ꦠꦸꦩꦸꦗ꧀ꦮꦺꦁ​ꦊꦉꦱ꧀ꦤꦼꦂꦫꦶꦥꦸꦤ꧀​ꦱꦸꦱꦠꦾ​ꦠꦼꦩꦼꦤ꧀ꦤꦸꦲꦺꦴꦤ꧀ꦤꦶ꧈
+ꦲꦶꦁꦏꦁ​ꦲꦔꦽꦁꦒꦤ꧀ꦤꦶ​ꦑꦫꦡꦺꦴꦤ꧀ꦢꦊꦩ꧀ꦲꦶꦁ​ꦔꦪꦸꦓꦾꦏꦂꦡ​ꦲꦢꦶꦟꦶꦁꦔꦿꦠ꧀꧈
+ꦗꦸꦩꦼꦤꦼꦁ​ꦢꦊꦩ꧀ꦟꦡ​ꦲꦩꦉꦁꦔꦶ​ꦢꦶꦤ꧀ꦠꦼꦤ꧀ꦱꦼꦤꦺꦤ꧀ꦥꦺꦴꦤ꧀​ꦠꦁꦒꦭ꧀ꦏꦥꦶꦁ꧇
+꧋ꦱꦧꦼꦤ꧀ꦲꦸꦮꦺꦴꦁꦏꦭꦲꦶꦫꦏꦺꦏꦤ꧀ꦛꦶꦩꦂꦢꦶꦏꦭꦤ꧀ꦢꦂꦧꦺꦩꦂꦠꦧꦠ꧀ꦭꦤ꧀ꦲꦏ꧀ꦲꦏ꧀ꦏꦁꦥꦝ꧉
+ꦱꦁꦏꦶꦁ​ꦥꦫ​ꦧꦺꦴꦁꦱ​ꦡꦾꦺꦴꦁꦲ꧀ꦮ​ꦒꦺꦴꦭꦺꦴꦁꦔꦤ꧀ꦲꦶꦁ​ꦔꦪꦸꦓꦾꦏꦂꦡ​ꦲꦢꦶꦤꦶꦁꦔꦿꦠ꧀
+ꦔꦂꦰ​ꦢꦊꦩ꧀​ꦯꦩ꧀ꦦꦺꦪꦤ꧀ꦢꦊꦩ꧀​ꦲꦶꦁꦑꦁ​ꦯꦶꦟꦸꦮꦸꦤ꧀ꦏꦗꦼꦁ​ꦯꦸꦭ꧀ꦡꦤ꧀​ꦲꦩꦼꦁꦑꦸꦨꦸꦮꦟ꧈
+ꦲꦢꦼꦒ꧀ꦒꦶꦁ​ꦩꦱ꧀ꦗꦶꦢ꧀ꦱꦭꦶꦏꦶꦤ꧀​ꦪꦱꦤ꧀ꦤꦶꦥꦸꦤ꧀ꦫꦢꦺꦤ꧀ꦔꦤ꧀ꦠꦺꦤ꧀ꦡꦸꦩꦼꦁꦒꦸꦁ​ꦦꦿꦮꦶꦫꦢꦶꦂꦗ꧈
+ꦒꦸꦧꦼꦂꦤꦸꦂ​ꦝꦃꦲꦺꦫꦃ​ꦆꦱ꧀ꦠꦶꦩꦺꦮꦃ​ꦪꦺꦴꦒꦾꦏꦂꦠ​ꦠꦸꦮꦶꦤ꧀ꦲꦶꦁꦏꦁ​ꦩꦶꦤꦸꦭ꧀ꦪ​ꦠꦸꦮꦤ꧀ꦪꦺꦴꦱꦺ​ꦧ꧀ꦭꦤ꧀ꦕꦺꦴ꧈
+ꦲꦶꦁꦒꦶꦃ​ꦥꦸꦤꦶꦏ​ꦧꦧ꧀ꦮꦺꦴꦤ꧀ꦠꦼꦤ꧀ꦤꦶꦥꦸꦤ꧀ꦱꦮꦸꦁ​ꦧꦭ꧀ꦧꦭ꧀ꦭꦤ꧀ꦠꦤꦃ​ꦔꦿꦶꦏꦶ​ꦲꦶꦁꦏꦁ​ꦱꦩꦶ​ꦔ꧀ꦭꦸꦫꦸꦒ꧀ꦝꦠꦼꦁ​ꦌꦫꦺꦴꦦꦃ꧈
+ꦱꦺꦴꦏꦺꦴꦁꦔꦤ꧀ꦱꦏꦶꦁ​ꦥꦫ​ꦩꦸꦱ꧀ꦭꦶꦩꦶꦤ꧀​ꦢꦺꦤ꧀ꦤꦺ​ꦲꦶꦁꦏꦁ​ꦔꦿꦚ꧀ꦕꦁ​ꦱꦲ​ꦔꦮꦠ꧀ꦲꦮꦠ꧀ꦠꦶ​ꦥꦁꦒꦫꦥ꧀ꦥꦶꦥꦸꦤ꧀ꦩꦱ꧀ꦗꦶꦢ꧀​ꦫꦢꦺꦤ꧀ꦔꦧꦺꦲꦶ​ꦕꦺꦴꦤ꧀ꦢꦿꦢꦶꦥꦿꦗ꧈
+ꦭꦗꦼꦁ​ꦏꦮꦏꦥ꧀ꦥꦏꦼꦤ꧀ꦏꦁꦒꦺ​ꦥꦂꦭꦸꦤꦶꦁ​ꦆꦱ꧀ꦭꦩ꧀ꦭꦤ꧀ꦩꦸꦱ꧀ꦭꦶꦩꦶꦤ꧀ꦲꦶꦁ​ꦱꦭꦩꦶꦭꦩꦶꦤꦶꦥꦸꦤ꧀​ꦥꦩ꧀ꦧꦶꦏꦏ꧀ꦏꦶꦥꦸꦤ꧀ꦲꦶꦁ​ꦢꦶꦤ꧀ꦠꦼꦤ꧀ꦏꦼꦩꦶꦱ꧀ꦏꦭꦶꦮꦺꦴꦤ꧀ꦠꦁꦒꦭ꧀ꦏꦥꦶꦁ꧇
+ꦲꦶꦁ​ꦔꦿꦶꦏꦶ​ꦔꦼꦕꦿꦠ꧀ꦒꦩ꧀ꦧꦂꦫꦶꦥꦸꦤ꧀ꦱꦮꦸꦁ​ꦱꦮꦸꦁ​ꦮꦲꦸ​ꦤꦭꦶꦏ​ꦤꦸꦗꦸ​ꦠꦤ꧀ꦝꦶꦁꦔꦤ꧀ꦏꦭꦶꦪꦤ꧀ꦱꦮꦸꦁ​ꦧꦭ꧀ꦧꦭ꧀ꦭꦤ꧀ꦱꦏꦶꦁ​ꦲꦺꦴꦁꦓꦫꦶꦪꦼ​ꦮꦺꦴꦤ꧀ꦠꦼꦤ꧀ꦲꦶꦁ​ꦲꦭꦸꦤ꧀ꦲꦭꦸꦤ꧀꧇
+ꦱꦢꦺꦫꦺꦁꦔꦶꦥꦸꦤ꧀ꦩꦱ꧀ꦗꦶꦢ꧀ꦱꦭꦶꦏꦶꦤ꧀ꦏꦒꦫꦥ꧀​ꦱꦩ꧀ꦥꦸꦤ꧀ꦮꦺꦴꦤ꧀ꦠꦼꦤ꧀ꦩꦲꦸꦗꦸꦢ꧀ꦥꦤ꧀ꦝꦼꦩꦺꦤ꧀ꦤꦶꦁ​ꦩꦱ꧀ꦗꦶꦢ꧀​ꦯꦸꦫꦩ꧀ꦧꦶ​ꦱꦲ​ꦥꦭꦩ꧀ꦥꦃꦲꦤ꧀​ꦱꦂꦠ​ꦧꦺꦴꦤ꧀ꦝꦱꦮꦠꦮꦶꦱ꧀​ꦏꦢꦺꦴꦱ꧀ꦠ꧇
+ꦩꦸꦭ꧀ꦪꦏ꧀ꦏꦏꦺ​ꦈꦩ꧀ꦧꦸꦭ꧀ꦧꦶꦤꦁꦔꦸꦤ꧀ꦠꦩ꧀ꦩꦤ꧀ꦱꦂꦫꦶ​ꦏꦊꦏ꧀ꦱꦤ꧀ꦤꦏ꧀ꦏꦏꦼꦤ꧀ꦏꦤ꧀ꦛꦶ​ꦥꦚꦼꦁꦏꦸꦪꦸꦁꦔꦶꦥꦸꦤ꧀ꦪꦪꦱ꧀ꦱꦤ꧀ꦏꦭ꧀ꦭꦲꦸꦱ꧀ꦠꦼ​ꦒꦸꦭ꧀ꦧꦼꦤ꧀ꦏꦶꦲꦤ꧀ꦱꦲ​ꦏꦂꦉꦱ꧀ꦩꦺꦏ꧀ꦏꦏꦼꦤ꧀ꦢꦶꦤꦶꦁ​ꦲꦶꦁꦏꦁ​ꦩꦶꦤꦸꦭ꧀ꦪ​ꦯꦿꦶ​ꦯꦸꦭ꧀ꦠꦤ꧀ꦲꦩꦁꦏꦸꦨꦸꦮꦤ꧇
+ꦠꦸꦮꦤ꧀Dr꧇ꦯꦶꦩ꧀​ꦏꦶꦄꦌ
+ꦠꦸꦮꦤ꧀Ir꧇ꦭꦶꦩ꧀​ꦆꦁꦲ꧀ꦮꦶ
index 522b9e1..7eb9f73 100644 (file)
 #define LT_OBJDIR ".libs/"
 
 /* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "http://bugs.freedesktop.org/enter_bug.cgi?product=harfbuzz"
+#define PACKAGE_BUGREPORT "https://github.com/behdad/harfbuzz/issues/new"
 
 /* Define to the full name of this package. */
 #define PACKAGE_NAME "HarfBuzz"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "HarfBuzz 1.2.7"
+#define PACKAGE_STRING "HarfBuzz 1.3.0"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "harfbuzz"
 #define PACKAGE_URL "http://harfbuzz.org/"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.2.7"
+#define PACKAGE_VERSION "1.3.0"
 
 /* Define to necessary symbol if this constant uses a non-standard name on
    your system. */